هیچ دوره ای در سبد خرید شما وجود ندارد
در این دوره به آموزش WinUI 3 پرداخته و این پلتفرم محبوب را مورد بررسی قرار میدهیم. WinUI 3 بصورت بومی با C++ طراحی شده و قابلیت استفاده در برنامه های C# را دارد. از این رو نرم افزار های تولید شده دارای پرفورمنس بسیار بالا و انعطاف پذیری بالایی خواهند بود. ما در این دوره بصورت 0 تا 100 و پروژه محور این تکنولوژی جدید را آموزش خواهیم داد.
سرفصل های دوره آموزش WinUI 3
فصل اول (60 قسمت – Design)
فصل دوم (33 قسمت – Develop)
فصل سوم (21 قسمت – پروژه الانوار)
فصل چهارم (5 قسمت – طراحی برنامه از روی عکس)
فصل پنجم (7 قسمت – پروژه TvTime)
نمونه تصاویر پروژه انجام شده در آموزش:
قراره تو این دوره چی یاد بگیرم؟
این دوره در 5 فصل تهیه شده و از مقدماتی تا سطح پیشرفته ادامه می یابد. با این دوره آموزشی یاد می گیرید تا نرم افزارهای خود را به سبک و استایل ویندوز 11 شیک و زیبا طراحی کنید و از آخرین روش های برنامه نویسی، طراحی و توابع مطلع شوید. علاوه بر اینها با مباحث زیر آشنا شده و کار میکنیم:
تکنولوژی های استفاده شده در این آموزش
پیش نیازهای دوره آموزش WinUI 3
دوره آموزش WinUI 3 برای چه کسانی مناسب است؟
- تمامی علاقه مندان به برنامه نویسی بوده که می خواهند بصورت جدی پا به دنیای شیرین برنامه نویسی بگذارند.
- مناسب برای تمامی دانشجویان که می خواهند پایه سی شارپ را بصورت حرفه ای یاد بگیرند.
- همه دانشجویانی که می خواهند برنامه نویسی Desktop را بصورت حرفه ای یاد بگیرند.
- به طور کلی مناسب برای تمام افرادی است که می خواهند از پایه ترین حالت ممکن برنامه نویسی را شروع کنند.
- جهت شرکت در این دوره الزامی بر دانستن زبان انگلیسی نیست !
- افرادی که نیاز به یادگیری آخرین تکنولوژی ها و متدها دارند.
- کسانی که میخواهند به دور از پیچیدگی و در کمترین زمان ممکن تمام موارد مربوط به WinUI 3 را به زبان فارسی یاد بگیرند.
- افرادی که نیاز به طراحی رابط کاربری زیبا و انعطاف پذیر به سبک ویندوز 11 دارند
- اشخاصی که نیاز به نرمافزارهای باکیفیت و حرفهای دارند
WinUI 3 چیست؟
WinUI 3 یک پلتفرم رابط کاربری بومی است که با Windows App SDK (به اختصار WASDK) ارائه میشود. (WASDK به طور کامل از Windows 10 و SDK های بعدی جدا شده است و بصورت بسته های ناگت ارائه میشود.) Windows App SDK مجموعه یکپارچه ای از APIها و ابزارهایی را ارائه می دهد که می توانند برای ایجاد برنامه های دسکتاپ تولیدی که ویندوز 10 و بالاتر را هدف قرار می دهند، استفاده شوند و می توانند در فروشگاه مایکروسافت منتشر شوند. Windows App SDK قبلاً به عنوان Project Reunion شناخته می شد. توسط WinUI 3 توسعه دهندگان میتوانند ظاهر نرم افزار های خود را بصورت خیره کننده و جذاب طبق زبان طراحی ویندوز 11 ایجاد کنند.
مزیت این دوره نسبت به سایر دوره های مشابه چیست؟
alinouri1979 دانشجوی دوره
سلام استاد وقت بخیر
باتشکر از پاسخگویی شما:
در TemplateStudio در صفحه MainPage به NavigationView.FooterMenuItems یک NavigationViewItem اضافه کردم و “wuc:NavigationHelper.NavigateTo=”views:SamplePage را به آن اختصاص دادم اما در هنگام اجرا به صفحه مورد نظر ارجاء داده نمی شود علت چیست؟
کد “xmlns:views=”using:App2.Views را هم به صفحه اضافه کردم!
سید مهدی حسینی قیداری مدرس دوره
سلام
من زیاد با Template studio کار نکردم بهتره سوالتون رو در صحفه گیتهاب مربوط به Template Studio مطرح کنید. ممکنه مشکل از Template Studio باشه
alinouri1979 دانشجوی دوره
سلام استاد وقت بخیر
باتشکر از پاسخگویی شما:
در TemplateStudio چگونه میتوان برای چند زبانه کردن HomeLandingsPage اطلاعات فایل AppData.json را تغییر داد؟ (مثل Resources.resw)
همچنین کد “ApplicationLanguages.PrimaryLanguageOverride = “fa-IR خطا میده!
ممنون میشم راهنمایی بفرمایید.
سید مهدی حسینی قیداری مدرس دوره
سلام
اول از همه سعی کنید پروژه TvTime رو بررسی کنید اکثر سوالات شما و راه حل هایی که نیاز دارید رو میتونید توی کدهای این پروژه پیدا کنید
TvTime/dev/Views/Pages/HomeLandingsPage.xaml at main · WinUICommunity/TvTime (github.com)
برای تغییر زبان برنامه در حال حاظر کدی که ارائه کردید فقط روی نسخه package شده قابل استفاده هست و روی UnPackaged خطا میده قراره توی نسخه 1.4 یا بالاتر API جدیدی ارائه بشه یا مشکل همین کد حل بشه. اگر از Dynamic Localization استفاده می کنید به مستندات مراجعه کنید
DynamicLanguage | Ghost1372
و از کد زیر استفاده کنید
اما در خصوص چند زبانگی اگر به فایل جیسون TvTime مراجعه کنید
TvTime/dev/Assets/NavViewMenu/AppData.json at main · WinUICommunity/TvTime (github.com)
هر منو دارای یک پراپرتی به اسم “UsexUid”: true, اگر این مقدار رو ست کنید شما میتونید اسم کلید ریسورسی که داخل فایل resw ذخیره کردید رو به Title یا Subtitle بدید
“Title”: “Nav_HomeTitle”,
“Subtitle”: “Nav_HomeSubtitle”,
در نتیجه باقی موارد توسط خود کتابخانه هندل میشه و ریسورس متناسب با زبان انتخابی توی NavigationView لود میشه (برای تغییر زبان و ایجاد تغییرات توی NavigationView برنامه باید ریستارت بشه) اگر هم منظور شما چند زبانگی کردن خود تایتل در HomeLandingPage باشه که کار خیلی ساده هست کافیه یه پراپرتی در سمت سی شارپش ایجاد کنید
public string mystring { get; set; }
و در متد ctor جایی که برنامه اجرا میشه مقدار این پراپرتی رو ست کنید
اگر از dynamiclocalization استفاده میکنید کد زیر
و اگر از چند زبانگی خود winui استفاده می کنید از مستندات و هلپر زیر استفاده کنید
ResourceHelper | Ghost1372
سید مهدی حسینی قیداری مدرس دوره
و قدم اخر اینکه پراپرتی که ساختید رو بایند کنید
<wuc:AllLandingPage x:Name=”allLandingPage”
HeaderText=”{x:Bind mystring, Mode=OneWay}”>
alinouri1979 دانشجوی دوره
استاد سلام وقت بخیر
دوتا سوال داشتم ممنون میشم راهنمایی بفرمایید:
1. در TemplateStudio کد AutoSuggestBox را بصورت زیر به ShellPage اضافه نموده ام باتوجه به اینکه TemplateStudio خودش NavigationView را میسازه کد فعال سازی AutoSuggestBox چی هست تا کار کنه؟
2. از NavigationView.FooterMenuItems استفاده کردم و چند آیتم بهش اضافه کردم چجوری میشه تنظیم کرد تا این قسمت در پنل کمی بالاتر بیاد؟
سید مهدی حسینی قیداری مدرس دوره
سلام و وقت بخیر
TemplateStudio پروژه رو بصورت MVVM ایجاد میکنه و پروژه ساده رو خیلی پیچیده ایجاد میکنه، اگر علاقه مند به الگوی MVVM هستید، من پیشنهاد میکنم از تمپلت هایی که اخیرا منتشر کردیم استفاده کنید، با استفاده از این تمپلت پروژه شما شامل NavigationView + TitleBar + Settings بصورت کاملا ساده و تمیز میشه و کار کردن با اون هم ساده خواهد بود.
از اینجا دانلود و نصب کنید
https://marketplace.visualstudio.com/items?itemName=MahdiHosseini.WinUICommunityTemplates
شما برای استفاده از AutoSuggestBox کافیه Event مربوط به TextChanged رو ایجاد کنید. هر چیزی که تایپ کنید این Event صدا زده میشه.
برای NavigationView هم من پیشنهاد میکنم از سرویس JsonNavigationViewService از پکیج WinUICommunity.Components استفاده کنید که خیلی ساده تر و بهتر هست.
برای اینکه ایتم هارو بالاتر بیارید میتونید از Margin استفاده کنید اگر جواب نداد دیگه کار سخت میشه و باید تمپلت FooterMenu رو خودتون بازنویسی کنید
alinouri1979 دانشجوی دوره
سلام استاد WinUICommunityTemplates خیلی عالیه یک کار تمیزه فقط ای کاش کد استفاده از AutoSuggestBox در صفحه اصلی و آپدیت در تنظیمات را هم بهش اضافه میکردین
alinouri1979 دانشجوی دوره
استاد جسارتا WinUICommunityTemplates یک مشکلی که داره وقتی در حالت dark استفاده میشه متن Title صفحه HomeLandingPage سیاه باقی میمونه و قابل دیدن نیست چجوری اصلاح کنیم؟
سید مهدی حسینی قیداری مدرس دوره
سلام متن ها بصورت خودکار روی حالت دارک یا روشن تغییر میکنن احتمال خیلی زیاد بخاطر تصویر هست که روی روشن و تاریک یکسانه راه حلش اینه از ۲ تا تصویر استفاده کنید سعی میکنم توی نسخه بعدی تمپلت این امکان رو فراهم کنم
سید مهدی حسینی قیداری مدرس دوره
سلام نسخه جدید LandingPage رو نصب کنید مشکل حل میشه
سید مهدی حسینی قیداری مدرس دوره
خیلی ممنون از شما
اینا دیگه چیزای سلیغه ای هست شاید همه علاقه مند نباشن ولی درنظر دارم یه ویزارد طراحی کنم براش تا ویژگی های مدنظر به پروژه اضافه بشه. ممنون بابت پیشنهاد
alinouri1979 دانشجوی دوره
سلام وقت بخسر
استاد در پروژه انوار از یک نیوگت با نام CommunityToolkit.Labs.WinUI.SegmentedControl استفاده فرمودین که در هنگام اجرای برنامه خطای نصب را داریم و آپدیت هم نمیشه این نیوگت را از چه مسیری نصب کنیم؟ چون در سایت نیوگت موجود نیست!
سید مهدی حسینی قیداری مدرس دوره
سلام در قسمت تنظیمات Visual Studio و بخش nuget باید فیدهای زیر رو اضافه کنید
https://pkgs.dev.azure.com/dotnet/CommunityToolkit/_packaging/CommunityToolkit-Labs/nuget/v3/index.json
https://pkgs.dev.azure.com/dotnet/CommunityToolkit/_packaging/CommunityToolkit-MainLatest/nuget/v3/index.json
alinouri1979 دانشجوی دوره
سلام وقت بخیر
استاد اگر در قسمت تنظیمات بخواهیم بکاپ و بازگردانی اطلاعات را برای sqlserver بنویسیم چه کدی باید استفاده کنیم و اینکه بجای ذخیره روی دسکتاپ یک پوشه در روت برنامه بنام بکاپ ایجاد بشه و بکاپ ها در آنجا ذخیره و بازگردانی بشن.
ممنون میشم راهنمایی بفرمایید
سید مهدی حسینی قیداری مدرس دوره
سلام من sql کار نکردم و با نحوه بکاپ گیریش اشنا نیستم، اما برای ذخیره کردن فایل در روت برنامه از کد زیر میتونید استفاده کنید:
var filePath = Path.Combine(AppContext.BaseDirectory, “database.extension”);
soroshsabz دانشجوی دوره
به نام خدا
لطفا روش کار با GenericHost در کنار EntityFramework Core و Migration را هم در ویدیوها توضیح دهید
سید مهدی حسینی قیداری مدرس دوره
سلام ممنون از پیشنهاد سعی میکنم حتما در نظر بگیرم
sajadbehineh دانشجوی دوره
سلام من هم این آموزش و هم آموزش آموزش WPF مقدماتی تا پیشرفته و پروژه محور رو خریداری کردم. از هر دوش هم راضیم.
فقط انتقادی که دارم اینه که در هر دو آموزش ماهیت پروژه ها به صورت دیتابیس آماده هستش و با توجه به این مسئله متدها به صورت Read هستن.
اینم متوجه هستم که بهترین پروژه ی تمرینی برای آموزش یه پلتفرم جدید مثل همین winui پروژه ای هستش که دیتابیسش موجود باشه.
ولی منی که میام آموزش تهیه کنم احتمال خیلی زیاد تمرکزم روی نرم افزارهای تجاری هستش. و از طرفی من توی این آموزش 43 ساعت و توی WPF حدود 35 ساعت همراه شما بودم.
پس یه جوری دارم سبک کدنویسیم رو از شما به ارث میبرم.
در نتیجه کاشکی در حد یک پروژه Sample هم که شده عملیات CRUD رو برای WinUi داشته باشیم. خیلی ممنون میشم اگه حتی قسمتی از یه پروژه رو در اختیارمون بزارید تا ازش استفاده کنیم.
ببخشید خیلی طولانی شد.
برای کسایی هم که میخوان این دو پلتفرم رو یادبگیرن باید بگم که من توی آموزش های غیرفارسی هم ” آموزشی به این خوبی و کامل ” ندیدم.برای همتون آرزوی بهترین ها رو دارم.
سید مهدی حسینی قیداری مدرس دوره
سلام خیلی ممنون بابت نظرهاتون و اینکه تا اینجا همراه ما بودین
هر کدوم از بخش های مختلف مثل دیتابیس به تنهایی میتونه شامل یه دوره مجزا و کاملی باشه و ممکنه حتی بیشتر از مدت زمان همین دوره نیاز داشته باشه تا همه بخش هارو پوشش بده اما خب این دوره زمان محدود و هدف متفاوتی داره پس نمیتونیم برخی موارد رو انجام بدیم.
اما پاسخ سوال شما زیادم سخت نیست!
از اونجایی که ما دیتابیس رو بصورت EF Core و بصورت کلاس های سی شارپ طراحی کردیم پس بیشتر کار رو انجام دادیم.
حتی اگر دیتابیس اماده هم نداشته باشیم، خودمون میتونیم بسازیم داخل کلاس dbContext و متد سازنده ما مطمئن میشیم که دیتابیس وجود داشته باشه Database.EnsureCreated(); اگر دیتابیس وجود نداشته باشه این کد دیتابیس رو میسازه بعد هرجایی از برنامه برای که برای افزودن اطلاعات لازم داشتید:
using var dataContext = new SampleDBContext();
dataContext.Categories.Add(new Category() { CategoryName = “Clothing” });
dataContext.Categories.Add(new Category() { CategoryName = “Footwear” });
dataContext.Categories.Add(new Category() { CategoryName = “Accessories” });
dataContext.SaveChanges();
برای اطلاعات بیشتر این مقاله رو مطالعه کنید البته کدهای راه اندازی رو نیاز نیست انجام بدید فقط مراحل افزودن و خواندن اطلاعات رو بررسی کنید
Create SQLite DB using Entity Framework Core Code First (talkingdotnet.com)
Mor
سلام وقت بخیر
کاش یه قسمت از ویدیو هایی که توش کد نویسی یا طراحی انجام میدید رو هم میزاشتین تا سبک برنامه نویسیتون رو هم بدونیم. در صورت امکان این مورد مد نظرتون باشه ممنون.
علیرضا احمدی
سلام و عرض ادب. انجام شد
Mor
ممنون بابت پاسختون ولی ویدیو هایی که گذاشتید صرفا بحثهای تئوری هستن و هیچ کد نویسی انجام نمیشه. در صورت امکان یک ویدو مثلا از فصل های سه یا چهار بزارید.
علیرضا احمدی
اونم به چشم. از فصل سه و چهار هم میزارم تا کاملا بتونید بررسی کنید.