Learn C# with CSharpFritz - Getting Started with Windows Forms

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] [Music] [Music] [Music] [Music] [Music] [Music] [Music] [Music] [Music] [Music] [Music] [Music] [Music] [Music] [Music] [Music] [Music] [Music] [Music] [Music] [Music] [Music] [Music] hey there we go good morning good afternoon good evening whatever time it might be where you are out there welcome back to the live stream my name is jeff fritz today today is june 28th 2021 and we're welcome back we're this is c sharp with c sharp fritz we're going to be writing some code today we're going to be starting a new series here of course this is a beginner-friendly set of sessions that i want to hear from you i want to talk to you i want to engage and i want to help folks learn be very beginner friendly i'm going to be very strict on the moderation and and i'm i'm always open to answering all of your questions whether you're watching on twitch youtube or on learn tv so drop messages in the chat we'll get into your questions we'll answer them as best i can throughout the session yes i am also broadcasting on youtube today this is the first time we're broadcast simulcasting the visual studio channel this stream out to youtube as well hello to our friends over there on youtube i see some folks asking some questions uh why win forms what's going on what's with that we'll get into that in a little bit here let me say hello to all the folks that are tuning in that are sounding off in the chat rooms i have the uh i have the uh twitch chat right there let me go to some of those folks first chris jones is here vincent aka smartest19 hello s 4p 0. good morning mr kubick's hello to you sector 2350 shy sharp confession charles galloway good to see all of you life-size teddy bear welcome in hello hello and quit over on youtube xander uh hello welcome welcome gersonmora uh gerson morris welcome in hello lou good morning to you deepankar debnath hello good to see you uh oh my goodness uh ada jumobi uh good afternoon to you in nigeria giza rex hello uh g return over on twitch good hey how's it going there our written house good morning benny v83 good to see you sheriff who dean hello how's it going so lots happening um we're continuing this series i have a bunch of videos to re to upload edit get uh content edited for demos that i want to trim and and i'm gonna have all of those work on all of those this week so that you're gonna have coming to you of course this video all the other videos in this series they're available on the.net channel over on youtube check out c-sharp with c-sharp fritz and you'll see all of these very beginner friendly sessions that are ama focused they we are very talk radio style in how we present this check them out and you can you can catch up on literally dozens of episodes in this series that we've been going through together so a couple questions that i've seen coming up hey why are you doing win forms why aren't you doing this framework or that framework or this we covered blazer in in a previous month here we covered asp.net we covered c-sharp we went into fro we did c sharp beginning we did c-sharp intermediate stuff we did some architecture discussion we need to get into windows application development and we need to get into it with really the dominant frameworks that folks are using that are continued to be supported that folks are seeing a ton of applications in there that they need to manage and quite frankly folks don't do a very good job presenting and teaching and offering instructions offering on-ramps for for people who haven't been doing net development for 10 plus years to get in and learn how to maintain learn how these frameworks function um and quite frankly we don't have good tutorials out there for this so let's let's discuss let's open up make these discussions available and we're going to start today with winforms we're going to have about a month month and a half here of winforms and wpf development we're going to cover both frameworks in in the time frame before august um when we get into august i expect to get back into c sharp basics for either c basics or i don't think it's going to be quite ready for us to talk about.net maui yet but i i suspect we'll get into c-sharp basics for august september and net maui perhaps for october into november as it nears release so um [Music] hello i see a bunch more folks sounding off over here on youtube buenos dias to you in brazil eddie uh guillermo arroyo hello to you in argentina ajaz in pakistan morello in brazil anil good afternoon to you douglas good morning vincent how's it going there um some people still get this at school to get started with net it's easy to create a quick runnable form in one forms absolutely vincent that is very true it's easy and we're gonna go through and do that startup that initial um template review here together on stream today rizwan hello to you in pakistan okay so let me head over and why don't i see there we go that's good good good good um making sure i have everything configured here because i've got three chat rooms i'm reviewing now all right um so we're going to talk about uh come on refresh that there we go good um i want to get in and i want to i want to talk about where we are where we're going and a little bit of uh review of where you can find the github repository and and we'll get in and get started with um with winforms here in a little bit or the beginner to advanced c-sharp vods up somewhere i'm going to be publishing them later this week that's my goal this week is to get all that content published i have them all saved they're sitting here locally on on my workstation mirrored on onedrive and they'll be published this week i've got a ton out there to get done and and we are going to get that all uploaded so let's um let me get some music playing in the background here of course i always play music in the background this is stream beats from our friend harris heller this is the lo-fi playlist today and this first song is called cloudy thoughts nice blue microsoft blue cloud um that we're going to start off with this is music that's kind of groovy to have in the background to talk over and to kind of fill the space when we're when we're not describing and talking about code stream beats of course is free for you to listen to whether it's on youtube twitch facebook wherever you might be streaming wherever you might be creating content dmca free royalty free use it wherever you'd like streambeats.com thank you so much harris heller for making this music available to listen to today there is a playlist for c sharp with c sharp fritz over on the youtube yes all the videos aren't loaded out there in fact i think it stopped early in the blazer series i i got so distracted i'm missing some color i'm missing some color what color am i missing let me know hello to you wild genie in turkey let's see a couple more folks signing off sounding off over here in youtube um welcome in everybody oh my goodness um are we doing winforms with net dotnet core i'm going to show a little bit of net framework but we're primarily going to focus on.net core because that's where we'd like folks to be doing their development with winforms um all right thecuben.net community good to see you okay i am double checking all of my screens making sure that i'm ready to go here and i think i am i think i'm ready to head over and get into the code so let me get ready to change headsets there we go and uh we're gonna head over to the other scene and actually step into into our code with the big green screen so let's head over there and get things started shall we alrighty love this music so groovy so easy to listen to that's not the right scene oh yes it is yes it is i just have it set up wrong um [Music] pardon me for a second because i need to be able to see what i'm presenting there we go and this fantastic now the primary place that i'm going to be taking questions from is twitch but i will be keeping my eye on the youtube chat um it's a lot harder for me to see that youtube chat oh my goodness um well so i forgot my gunners grab those need them real quick um i already see some questions here what's the best way to create an installer for winforms msix or click once depends i prefer msix that's me um but you can absolutely do um click once with with net5 now i'm not going to get into installers today but uh it's definitely a topic that we should cover at some point here um yeah i'm not gonna be able to see that that youtube chat um let me think think think think think think how can i best see youtube chat uh let me do this real quick pardon me for just a second see if i can pull a whammy here i think that works there we go so now i can see youtube all right um recently had an issue with see i'm those are things that i'm not going to be able to get too far into those are a little bit off about signed code so all right so this is the github repository where everything for this series is kept c sharp for its slash c sharp with c sharp for it um all of our samples all of our demos are out here i've been merging in some of the samples so now you're going to be able to find uh jupiter notebooks you're going to be able to find c-sharp projects that have all the code that we've been working on and this session is no different i'm going to have code loaded up here at the end of today's session and today's session i want to do i want to do more live coding style i want to go through walk through and explore how visual studio makes things so easy for us to use with winforms why it's such a great choice for folks to interact with and and build with um but also show you a little bit of the manual way you can do things over in visual studio code and work with it there yes there is a pop-out chat function on youtube yes there is so um i'm not going to be talking about signed code today probably a little bit later on in the series we'll talk about building installers and deploying but not not something that i want to get too far into today because it there's a lot of maybes around that little a lot of ifs and wins and they can get confusing for folks so let's talk about windows forms now um good i don't have anything open let me open windows terminal because i work at the terminal primarily um why because uh you can be very productive with as a developer at the command line but we're gonna jump from here right into uh visual studio quickly so um let me go into my c sharp with c sharp fritz folder here uh yes sessions this one and uh let's make a directory that we're gonna work in here for source and um let's take a look at net new and and see the templates that we have here to start with and there is a windows forms app template so you can build a windows forms application from the command line now with net we know we can build things on windows mac and linux however this is windows forms so just like if you want to build an ios app you can write the code on whatever platform you want but it's not going to work you're not going to be able to build and debug it unless you're on a mac platform that's where the debugger is that's where the runtime is you're not going to be able to run it natively on windows you're not gonna be able to run it natively on linux you might be able to pull some some tricks and get it routed over to another machine so that it runs and executes but just like just like ios how there's that restriction on it you can't run windows forms you can't run windows presentation foundation wpf anywhere else except for windows now there is emulation that folks have built to get close to get these things running with mono on on linux and on mac it's it's all the best yet to try and get it working it's it's not 100 really if you want to build win forms you need to be on windows okay um no we're not going to talk about win ui in this series we'll get into maui later on in the year i see a question about mvvm we'll talk about design patterns probably um we'll talk about design patterns in in july that's a little bit further ahead than what we want to go for beginners beginner topic today we're just getting started this is literally get started with winforms and asking about mvvm and installers and certificates that's way down the line here just getting started we want to make sure we're very beginner friendly here for everybody that wants to um learn about winforms um feature chat only supports twitch that's right vincent yep so um all right so windows forms is the first application model for building desktop apps that was made available with net so way back in 2001 20 years ago windows forms was how you built applications and it made sense we were coming out of visual basic sex we were coming out of delphi and these other languages that were being used to build desktop applications forms over data primarily right you had folks that wanted to build that uh that accounting application right or or the order management application that was going to be installed on somebody's desktop and they were going to use it to interact with data in a database and typical client server architecture was the way you built apps so you'd build a windows forms application that would connect to a database sitting somewhere in a data center or maybe maybe it was under skippy's desk over there and it was the machine running the database and life was good and things went that way for for a while right and then the web really started picking up in the concept of well let's just run web based intranet applications really started a hit and popularity of windows forms went down a bit but there were things that you couldn't do from a intranet application that still necessitated using a windows forms application you wanted to interact with sensors or devices or cameras on on a desktop you couldn't really do that from a web application there's ways to do that now but um you wanted to work with some sort of a device you wanted to work with install and build a cache register application that actually interacted with with the cash drawer you or interacted with a credit card scanner a little bit trickier to do that with a web application ways to do that now but you kind of focused on and you would take windows forms as the way to build those so let me just taking a look around here at chat so that was really where windows forms started um and i've and it evolved over 20 plus years right we've seen it evolve and change and grow with net framework makes sense that it grows and changes and ships with net framework because net framework the original version of dotnet shipped with windows so every time a new version of windows came out new version.net framework came out and shipped and would be on everybody's workstation consequently you didn't need to build big installers to run things because your entire run time that your application was going to run with was already installed and running on everybody's machine right if i go to uh see windows microsoft.net there it is there's the.net framework on your machine and it's on everybody's machine everybody has this that runs windows so if you're building and working with net framework make perfect sense here it is you can work with this no problem we know how to do these things i don't have to build a giant installer that's going to carry along my my vb runtime we used to have to deploy with vb6 applications or you'll see the visual c plus plus runtime that sometimes needs to get to get installed when you when you download games from steam and and um from the uh epic installer right from from various stores that that you may be downloading games from downloading applications from you'll see these runtimes that have to be installed and it's a couple hundred meg that it's downloading and installing right so net framework here was that common language runtime and it made perfect sense for us to have right there look look at all there's parts of the framework and down here there's system data system design system diagnostics drawing identity model all the things you need to build with just the net framework are already on everybody's machine you don't need to go and install it so this was a very good thing and why windows forms developers really enjoyed building and deploying now if you went and purchased a uh a control suite from from a vendor like devexpress or infogistics or uh telerik or uh sync fusion component one all kinds of vendors out there a tremendous ecosystem of those folks okay now you had to deploy their components with your application so your installer process would get a little bit larger but you ended up not deploying that much because you didn't update their components that frequently just your application so you could even deploy just your exe when you needed to make changes so now that was the last 20 years starting with net i believe it was net core 3 um windows forms is now available to run and build with at the command line with the net command line tools so what does that mean well um we've now created this this rift a clear separation between windows forms on.net framework and windowsforms1.netcorenow.net5 why because in the last two versions of windows forms we wanted to bring we the.net team wanted to bring the ability for you to build on high dpi displays and anybody that's tried to build with windows forms build an application that targets a high dpi display things get a little weird around scaling the size of your forms scaling the size of your images and the position of elements inside of inside of your application and quite frankly there are millions of windows forms applications out there consequently every time that windows forms is updated in a new version of net framework if you make a change to how things are scaled and positioned like the.net team was trying to do to introduce high dpi support you'll break several million applications now as a developer when you look out at your customers and you say you know what if i if i cause ten percent of my customers to have a bad experience that's okay if you have a thousand customers and ten percent of your customers are having a bad experience that's a hundred customers okay you're gonna have to deal with that so you work on that you get that down to five percent and that's 50 customers that's not bad when you have problems with one percent of your customers that's only 10 customers you're in great shape your quality assurance is good we can handle 10 customers when you have problems with one percent of your customers and there are millions of applications out there you're still talking about tens of thousands of people and applications that are having a bad day and that's something that quite frankly the net team didn't want to do to their customer base they didn't want to create that much angst and in um and and prop potential problems for those folks so instead of just doing a major version number update because let's face it when there's a major version update and nobody pays attention they just say they go into visual studio they change the version number and they continue running all right um i was on four five now and one four six keep right on going and you don't pay attention to really what the changes are did it break anything i don't know it go from four six to four seven well it's a minor version no big deal but this was going to be a major thing to go and introduce high dpi support so in order to force provide that force factor that says you need to reevaluate you need to inspect and make sure that your application can support this they only brought high dpi support in.net core this way you had to make sure you really wanted it you went in and you had to re-evaluate your code and then you were in net core and quite frankly you've got a faster experience because it's been optimized it's been tuned and it's going to deliver a better better maintainability going forward because now now you can deliver just those parts of the framework you need that are going to be updated and match your framework your application going forward so this also means just like we saw over here net framework gets shipped and it's available on everybody's machine but if the version of the framework and the version of windows isn't installed for windows forms you got a problem you can't go and install 4.8 on everybody's machine just because you wanted to build for net framework 4.8 so because.net core now.net 5 allows you to build and ship just those parts of the framework with your application now we're talking now we've got a good experience for us to build and deploy just the things we need with our application that also means that i can evolve my application and take it to whatever framework version i want because i'm shipping just those pieces and there's a quite a comment here on twitch that says that says mo emo lannworth one of the program managers on the dotnet team commented that windows win forms uh won't be updated anymore that's correct so going forward um net core is going to be where and net five is where innovation is going to happen with windows forms that's where we're going to focus today on on.net 5 and windows forms if there are bug fixes if there are features that do need to be backported into net framework the net framework version of windows forms they will be updated they will be deployed only for those things that are needed that are security fixes or updates that need to support when that are needed to support windows otherwise all innovation going forward will be in net core and net five can windows forms be responsive like a website yes we'll see that in a little bit more um in just a little bit here yeah the runtime wasn't installed just like the jre yeah um right we see that with the with our friends in the java environment they run into a bit of that um i see a question about enable telemetry there's telemetry built into the.net tools built into visual studio so that without without doing any work you're providing feedback to the.net team about how the tools are being used a lot of folks like to opt out of telemetry and that's okay but that also means that they're not getting your input in how the frameworks how the tools should be evolved going forward that being said the telemetry is all captured anonymized and nobody can track that information coming back to you um learning how to some folks learning how to use blazer awesome yeah my personal channel i go into blazer a bit more um do companies there's a question here from capparino in twitch do companies use winforms um.net.net core or um does it require a lot of effort and time no um the nomenclature right now is confusing but as we get things into just.net.net five going forward and net framework falls away um it'll become a lot easier to refer to and work with really i expect that to be ironed out by 2025 and we're in the net 8 9 10 schedule i expect that nomenclature in our culture to kind of fade away by that point but do they use it with net core yes they do there are there are millions of applications out there and we now have a um a tool that will allow you to migrate from net framework your windows forms app and get it running in net core we'll see that tool a little bit later in this series um as we talk more about those taking a look over here at um at youtube folks are saying wpf is dead no it is not wwpf is quite active there are lots of folks building with it um and there are updates coming to wpf in net six winforms is bitmap-based not vector-based that's correct it is bitten bitmap-based my microsoft win logo is glitching out yes it's got a green bit in it and i'm on the chroma key um so looking here avalonia is a little bit like a cross-platform wpf it is built by folks in the community that that manage that project uno platform is out there as well but the thing i always get that always got me with wpf is you're building with the the xaml markup language which is nothing like html why there are hundreds of millions of html developers out there there are a million two million xaml developers out there why invent a markup language that is doing exactly the same thing as html but looks nothing like html and that always struck me as a concern when building with wpf and that's why i'm i'm so excited about uh net maui with blazer um is the intention for net maui to be the base for windows mobile uis going forward yes absolutely for net developers the the fact that we're going to give you the ability to build with one language one markup your choice of xaml or blazer and be able to target and deploy to all the different runtimes and operating systems that's where we think the panacea is that's where we think everybody wants to be i don't think anybody really wants to um be overly focused and specialized on one framework one language or another and and be boxed off and gosh i can't build for mobile because i know html and and javascript how do i build for mobile well i can do the electron thing and and deploy in there we have we had phonegap which now is apache cordova i could do that but it's not quite the same and that's where things like net maui are going to make it a lot easier for folks to interact with and build with um there's a question here on twitch when is net core going to get installed with windows updates i don't like that users have to manually install it if my map if my app is not um it's not it will be updated with windows update but net core.net 5 will not ship with windows that's one of the reasons that net5 and.net core was built so that it was not coupled with windows if something ships with windows then it falls into the windows support cycle and it must now be updated and shipped on patch tuesday and whenever an update to windows happens and that's the only time that it's allowed to happen you are not allowed to ship out of cycle from windows that's a problem because developers the web mobile apps move at a faster pace than windows so if you're not shipping in the version of windows and you're locked off that means net can't evolve as fast as it wants to because it's required to stay in lockstep with windows so that's why we have.net 5 that's why we have.net core because then we can ship and update when we want it is now part of the windows update process just like m365 so that it will update we on folks windows machines when we push updates just like we push updates out to apt so you can update your net tools within uh apt update command as well over on linux and mac uh you could do that with brew as well um how are wind ui and maui connected i'm not gonna answer too many more questions down this line i need to get into the demos and the talk today but asking how are win ui and maui connected um so net maui outputs to um four different platforms right ios android mac os and windows so when you output to android and ios it's outputting using the same technology that we had for xamarin forms compiles and ahead of time compiles and runs on those two platforms compiling and running on those runtimes appropriately mac os we compile with the same xamarin forms technology and we can have it run on mac os however when we build for win for windows it is compiling and using the win ui framework and primitives and it will deploy and run using as a windows ui application on windows so that's how net maui is going to support all of these frameworks that also means dot net maui has a very complex dependency tree that it sits on top of so that we can build and automatically target all of these runtimes that gets kind of confusing that gets a little bit complex to give us that simplified development framework that we're going to have with net maui and that's why it's taking taking some time here to make sure that we get all the features into it that we want and we'll see more about that coming up in november when dot net maui and net six are released checking youtube to see if there's any questions over there um you you've heard that linux kernel is being negotiated within windows well linux runs within windows under the windows subsystem for linux um so you have that running um looking here at the youtube questions you kind of like xaml because it makes your ui declarative that's fine um my my concern with xaml is literally they reinvented html your first year compsci student just wanted to ask how can i code a big what i don't know what that is um hello there i see some new friends jumping into chat over on twitch um all right here we go so let's get into this let's start building the applications so if i were to build a first application here at the command line for with winforms um of course i can do it dot with a dotnet new statement it's hiding there behind my desk behind my my table here so let's do it right up here dot net new um win forms and i'm going to output that to uh my i'll just call it my app okay and it it's going to build this create the template and restore and it's now here on disk if i do it look here i've got my app take a look in that folder and you see i've got i've got form cs form designer cs i've got a cs project cs project user and program cs why are there two files for this form let's take a look at that this is something that for folks who come in from other languages come in from other frameworks looks kind of weird um so let's take a look uh first at at program cs well gosh um this looks kind of lame uh stat thread main set high dpi mode enable visual style set compatible text rendering default okay text rendering all right that makes sense and then application run form one so this is windows forms saying go find form one inside inside this exe inside this application and launch it now this bit here stat thread this is telling the dotnet runtime this is your entry point this is where you're starting the application now in a console application like we've seen before um we static void main and it takes in some arguments and we the net.net core.net 5 runtime sees that and starts up and that's the entry point and it goes it starts running so this is just a way for it to say get started this is your entry point all right but what's with those forms so let's look at this one form designer first so wait a sec partial class partial class in c sharp you can define classes in more than one file and by using the partial keyword like we see here it will the compiler will find those classes that have the same name that live in the same name space and you see this is in the namespace my app and and it will effectively weld them together as one file why do we do that well sometimes you'll have content you'll have concepts that you want to deliver in multiple files for the purpose of easier maintenance maybe you have accounting functions for your class put them in one file and you have um warehouse management functionality for that class let's put them in a different file this way when your developers look at the code if they're working on the accounting functionality they're working in that file and if they're working on the warehouse functionality they're over here in this file same thing here with windows forms this is the form one designer cs so when i'm working with the designer capabilities and i'm doing layout and i'm doing positioning of things or colors where i'm setting properties those standard look and feel properties of my windows form this form well i'm going to automatically from the designer save that content in this file this way if you're developing and working in visual studio 2019 you're going to have a great experience interacting with because that designer is just updating the contents of this file and your code that you wrote that actually does the business logic for how to interact with your windows form that that page live somewhere else and the designer the visual studio designer doesn't touch that at all that's your file that's your code you're maintaining it you do your thing over there the designer updates this file and that's why um there's things like this indicating and making sure you know this is designer generated code if you change some of this it could be changed back by the designer you manage this but you don't own it make sense there's a slight difference there let me take a look at chat and make sure oh and i see people spamming in youtube um android uses xml it does yep with java um that's right wabin um in in about the last 10 years over the last 10 years um really since 2008 um microsoft and the.net team specifically leading the way has embraced open source technologies at the open source communities and has engaged with more of our technology so that you can you can download and freely modify and and work with the source code any way you want of course everything with net core everything with dotnet and through net5 and now.net 6 everything is completely open source free for you to download change send pull requests open issues discuss with the team the engineers the program managers are eager to talk to you and and help make help make everybody's frameworks and tools better visual studio is is a proprietary product you will not see that open sourced but you will see folks working working on that and sharing features of that in the open as it evolves so these are good things it and and quite frankly i would not have joined microsoft if everything was still proprietary looking back over here at youtube um chris says so the template sets up code from the looks of it exactly that your when when you do that.net new this template sets up the way the form is going to be presented and if i scroll down a little bit you see this initialize component here where it sets up a container for the components on this form um auto scale mode so it's going to auto scale your fonts and it sets up the client size the the initial size dimensions of the form using system drawing size 800 450 and it sets the text for the form the text property to form one now we don't know what form one is it's it's default it's the first form there it is but um very clearly this property here setting the size that's something that would be really cool to be able to manage inside of a designer know what i mean so being able to interact with and set properties and and scale things with your mouse and and be able to have that very hands-on interaction with our application is what makes windows forms so valuable to folks you don't need to know html or xaml or javascript you don't need to know all these languages css think of all the things and how complex all the concepts that you need to know as a developer in order to build a web application to build a mobile application oh you need to know you need to know uh objective c or swift in order to build with ios and even then once you get in there you need to know the markup and how it positions things and how it interacts with things very complex versus buildingwith.net we can and building with wind forms we can remove we can abstract away all those concepts and you're going to see this with net maui as well we can abstract away all those concepts and give you an easier way to reference and build applications so those citizen developers who aren't who aren't as ingrained in computer science and performance tuning and and all those things that we as engineers we as developers love to go and explore and it's fantastic to do those folks who aren't in that mindset can still rely on us for those things and build applications that still deliver value using winforms [Music] winforms is more basic easier to inaccess in building says surge dev in twitch yes completely agree um darth leopold says we have handy in modern wpf technology does it make sense to develop wind forms it does make sense to develop wind forms um for exactly what i was just saying wpf is you're going to be in xaml and there are there are citizen developers that xaml is too much for them to learn and go through so you're not going to see them go into it let me go over here to youtube take a look um i see folks saying don't learn winforms i completely disagree there are folks that that have to maintain many many windows forms applications and they need to learn it um and you're not going to get people say to to say oh well sure we'll just update to wpf that doesn't happen um uh question here from is that is that uh megna um if teaching.net to university students would i recommend giving priority to winforms application or wpf applications um right now i would show windows forms and i would go into it with the mentality of um get ready to go over to dotnet maui you're you're six months away from.net maui and that's really where we want people to be building going forward um i would show windows forms just because there is so much legacy out there and there are millions of legacy applications out there and that's where i would focus we will be using wpf we will show wpf here on this series um but would i definitely would encourage you to learn a little bit of both windows forms is where i would focus and i would go into it with the mentality of we're going to get into net maui before the end of the year early 2022 is when you really want to start looking at launching uh shipping projects that run on.net maui all right let me move on here so this is when form one designer let's take a look at form one so we can see that form one this is where your code is there's nothing here because i haven't written any code yet it just calls initialize component in the constructor fantastic need to leave that there so it initializes the user interface that's okay but i can put whatever other code i want here to drive how my application runs so now let's go and now that we've actually seen the code and what you get by default i can i can run this here at the command line with net run right dot net run i'm on a windows machine so this will launch and there's there's form one i can put stuff on form one if i wanted to i can put things inside here all at the command line if i wanted to but it's not going to be a great experience it's going to be difficult you can go through and outline and define all the interactions with the various controls the widgets the the user interface components we want to place on the user interface and we we call those controls in windows forms you can do that you can configure them and specify all the locations inside of that cs file it's not very declarative like you would with have with xaml or html but it's possible really where you want to be is in the designer so let's go over and let's start talking about let's look at the designer that comes with visual studio i'm going to focus on 2019 in this series on on this series of streams of course if you're watching this sometime in 2022 and going forward you might be using visual studio 2022 or a newer version of visual studio that may have been released after that so let me go and i'm going to start a new application from over here no i'll open the same project that we just created c dev c sharp with c sharp fritz sessions season 5 source there's my app and you can create these apps very easily inside of of course inside of uh visual studio i'm going to do add new project you get this wonderful dialog that pops up that is going to show you all the templates that you have available across all kinds of platforms all kinds of project types i'm building for windows and um where is it desktop and i get application packaging projects unit test projects windows forms app there for net framework you can see that one and windows forms app using um using.net five i can choose here there's also you can build windows forms app of course with visual basic if you'd like um and that's okay you can see all kinds of there's the wpf applications windows services blah blah blah blah all kinds of things that you can build in here you can choose what language we focus on c here because i like c-sharp and let's face it you're watching a guy whose nickname is whose screen name is c-sharp fritz i'm not gonna be building with python so um so i could build with one of these you're gonna get the exact same thing popping out the other side when i when i build with this sure winforms app one and you can choose which version of the framework.net core 3.1 that's a long-term support version dot net 5 which is a current version more about the support is support lifecycles available on the.net website goto.net click the support button there and it'll tell you more about the support lifecycle and net 6 right now is in preview at the time of this recording but that will be our next long-term support framework version that you can work with going forward all right taking a look over at chat how we doing so all right um [Music] i see folks asking about how do i build an application that does this does that i'm not going after that right now any chance that.net maui supports windows forms for desktop no dotnet maui will be supporting uh win ui for desktop that's what it outputs and builds with going forward um what about iron python windows forms with python not something that we want to support uh cobalt fritz is the madness no that's not happening vba fritz no i tried to get vb fritz i tried to get that screen name have that in in in my uh collection i do have f sharp fritz vb fritz somebody else has this uh has has's listen to me um avoid iron python at all cost proto prototype 04 says over here um mighty core asks what's the difference between net five this is a fine question i'll bring this up and we can we can take a quick look what's the difference between.net5 and.net framework when building the application i think that's that's a very good question let's um let's show what that looks like so when i choose.net framework windows forms app one i'm going to put it in the source folder over here i have my choice of net framework versions that's not confusing i'm going to go with the latest version though 472 create and place it over here now dotnet framework and netcore.net5 have different formats for the project file um if we look at the project file here i need to unload it before i can open it over here this is the windows forms dot net framework project file it the project file is xml because we need to support it in all versions of visual studio and all the build tools need to be able to support it and it's there's a lot going on in here file alignment auto generate binding redirects deterministic all kinds of properties here if we're building for for debugging on any cpu if we're releasing on any cpu here's our references and every file that you're including inside of your application is listed here along with directions for how to compile it versus that's your build syntax that's your cs proj file for net five no files listed references would be listed here if we referenced other things other packages other libraries outside of what ships with the framework because this bit is included here sdk microsoft.net sdk it knows to look at all of the net things that we might be building with to build a dotnet application use windows forms tells it that this is going to be a windows forms application and that we're building a standalone exe file for windows the target framework is dot net 6 dash windows we've included the operating system in the name of the framework here to make it easier for folks to understand and and light up features appropriately for that runtime on that operating system so there's a first bit there once you get past that so i will reload this project uh i didn't make any changes in there so go ahead reload it if you look at the designer here and we look at the designer over here all right so let's put these two side by side i'm going to zoom out just a bit what i want you to see is the code is the same right it i made a little bit smaller so we could fit it all on the screen but the code is the same okay so your code should move easily from one platform to the next especially if you're building things that aren't referring directly to some configuration things that have changed from net framework to.net core i'm thinking specifically about registry access um ways that you interact with um some of the net framework capabilities just aren't there and they've moved so this is good right our code should be very portable from dotnetframework.net core and we'll see we'll look at the upgrade assistant um i'll put that on the agenda for our next stream so we get in and talk about it and look at that and what it means for um migrating older applications to net five all right um reflection emit has changed as well looking over here at youtube um wobble the release cycle for dot net b going forward asks is that renny um going forward.net will be released every november and and it'll be a major version release every november we're hoping to avoid minor version releases in the spring um but you're going to see uh net six released november as part of dot net conf um that's our virtual event that we host every november there it is dotnetconf november 9-11 you'll see the.net 6 release at this time um full support for all the things with dot-net maui going forward but.net 6 will be a long-term support release all of the even versions of net that are released in the odd years 2021 we get net 6 2022 we get net 7 2023 odd year we get net eight even.net the even versions of net will be long term support versions this means that we can experiment and try introducing new frameworks and things in the odd numbered versions that will be current releases and those versions will be supported for three months after either the next current release which might be a minor version release or the next long-term support release with the goal of the long-term support release has hardened performance um error management all of the capabilities of that version of the framework the odd numbered version of the framework so that you have a long-term support version that is very stable and very reliable and we're very much seeing that with net six all of the underpinnings that were necessary to make.net maui happened were introduced in.net 5 net 6 will have all of the user interface components migrated and ready to go at release um how can we download a c program in windows xp windows xp is no longer supported um that's sorry upgrade and a c program download when you mean download i need a little bit more context but get off of windows xp let's start there moving on i mean windows 7 is about to be or it was dropped from support um this year or it's about to be dropped so um i forget exactly that part of the life cycle bring xp back the fisher price user interface no um all right so i have my application here let's talk about the designer i'm i'm actually going to remove this so we focus on my application here it is so i have a form and a form is the base element for building user interface in windows forms so here's my form form one and the designer is still the same look and feel designer as we had with windows xp back in the day and it still has that chrome around our user interface that we're used to seeing and we have a tool box that appears over here you know what i'm going to move the toolbox to the other side so so fritz isn't standing in front of it know what i'm saying um and i'm going to grab my properties window and put it over there as well so it becomes a little bit easier for me to point at there we go so i have a toolbox that has all these tools all of these controls that we can use to build a user interface and when you look at these these are the things that you want in order to build um in order to to build a a form over data right that's typically what we're using this for so check boxes a color dialog combo boxes context menu strip um font dialogue look at these labels list views um menus open file dialogs right print dialogues because you want to be able to print stuff of course radio buttons where's text box text box of course and all of these very simple controls that you can use to build your user interface and i have and right i can easily drag these on and place it wherever i want make it whatever size i want and right now i've got a text box out here and it's the full width of of the user interface i can put it wherever i want as ugly as i want whatever fine and there's even a little gadget here that'll give you capabilities to get into some simple tasks right so sure let's make it a multi-line text box and now i can make it like a text area in html whatever size i want or i can change it back to a single line and find there it is there's even a little indicator there to help you adhere to good design standards and it's the proper margin away from the top fine that's fine so it does the things that i need it to do if i look at the form here i have to let me talk about the properties box next so these are all the properties of the form and what's made this properties dialogue so nice and so friendly for developers for so long is you've got this little bit of help text here that makes it clear what each one of these things are that you click into so while i'm clicked into the form here you see it it's properties of the form up here and i have text form one the text associated with the control it's actually inherited that form that property from the control uh class so it's not the proper text for this but um that text form one is the label up here at the top so i can change this to be fritz's wonderful windows application and it changes the title appropriately okay so this is your title your title for your form make it whatever you'd like um form border style i can change this if i want it to be sizeable if i want it to be a tool window if i wanted to be fixed dialog window let's make it fixed single and whatever size i make it it won't be changeable you won't be able to resize this i can inside my designer grab the little handles here and make it whatever size i want and that's the size that it will always be so let me just put this up here like that now i've got a little text box up at the top and it's it's a little form here with a text box um windows life windows 7 end of life uh life-size teddy bear says was january 14 2020. there we go thank you so much um unity someone's asking about unity is a great framework that folks use um not managed by microsoft but it's managed by the unity 3d folks you can absolutely use that to build applications are we going to get into dependency injection we've discussed dependency injection as a concept in a previous video um and we'll we'll get into it we can we can show how you would do dependency injection here in a later concept in in a later um session but not something that i want to focus on as much with this framework because di is is much more of an add-on to windows forms versus it's it's really part of the way you build applications with things like asp.net and blazer um [Music] find all of your winforms controls to properties yes absolutely solid principles we've talked about solid principles in a previous stream c sharp windows 10 uh singapore i'm not sure what that means um okay yeah this is basics basics everything here is on these streams or introductory sessions i do more advanced things over on my channel um and and really go ama on on any topic so um hey there in brazil marcus paolo welcome in so good to see you so very simple form here now if i want to and if i want to make this into let's make a a very simple calculator here i'm keeping an eye on my time i've got about 45 minutes left let's let's add some features to make a very simple calculator so i'm gonna click on my text box here and it's called text box one let's give this a name so so that i know how to reference it how to refer to it and i'm looking for the name there it is here's the name property right so this is the name used in code to identify the text box i have up here at the top so um i'm going to give this the name um right this is the the screen this is this is where we operate so um i'm going to call this my calculator screen so that i can refer to it in my code and i know what's going on there uh let me see i want to change the font size here you know what i mean i want to make the font size a little bit bigger and uh change the font i don't like i don't like this the segue um let's see let's find a oh here we go let's use cascadia code and we'll use bold and like it's let's make it 18 point font so it looks all cool in programmer programmer like and of course um calculator start off with text of zero dot and it's never aligned to the left right it's aligned to the right so let's align that to the right okay so i've got my very basic calculator screen defined here i'm going to save that and just to show you how that updated our code i'm not going to do this every time but i want to show you how our code that it maintains in the designer updated here so i'm going to scroll down in this block this region here windows form designer generated code let me open that up and now you see it generated a calculator screen control with font location name size tab index text text align all those properties i set are right here and i could have written this code by hand but it was so much easier for me to do dragging and dropping and working on that design surface and that's what makes windows form so valuable is generating these lines of code automatically for us [Music] so and here's everything that i configured for the form including fritz's wonderful windows application okay the name of the form is form1 that's fine i don't care it's the only form in the application um looking over at uh youtube chat um let me see here can we customize or style the winform controllers like in the winform controls like in javascript yes you can absolutely um and there are all kinds of folks that have some pre-built uh configuration available for you keep an eye on learn tv i don't see anything from coming in from learn tv right now um is binding fixed in winforms and net core should be folks are having tremendous success using uh winforms updates does winforms have layout managers so winforms has docking capabilities in here that you can use and there are folks that have built other things that you can use um to help manage your layout as well but out of the box it doesn't have so much a layout manager but it does have the concept of docking so i can take this component if i go over to properties here uh where is it design i'm looking there go layout anchor top left well i can instead say well dock it to the top of the screen like that and it will stretch and fill the entire top of the screen right or i can say no docking i can i can actually tell it to fill the entire user interface and because it's only one line it's it's more or less docked up at the top but you can specify where you would like things docked so you can set up groupings there is a groupings um component here group box so you can group buttons and things together and place them and have them dock within that grouping box so um it isn't a layout manager per se but you will get the same type of effect um is it still the time to use wf um there is an open source implementation of windows workflow but folks have pretty much moved away from using windows workflow all right i see folks asking the same questions that i answered earlier so i'm not going to repeat them um question over here um from 3d polywrath in twitch asks going forward do i see winforms or maui uwp become or maui or uwp becoming the standard for desktop apps.net maui um the uwp is um it doesn't give the flexibility that folks really want for interacting with this am i allowed to edit it there edit what their mighty core one [Music] fantastic all right moving on so i've got this here it's a text box and it's got the number zero in it um let's uh let's start putting some buttons on here to make this into a little bit more of a calculator so i'm gonna put a button here and see it's helping me dock it right there see the little right it snaps right into place so i'm gonna place that there properties i'm gonna go up here where's the name i'm gonna change it from button one let's put make this just the text one um and let's have it match the font not segue let me go back up here to uh cascadia code i'll make it 18 point there it is i can even right that's fine and make it something like that sure um and it's called button one so let's start duplicating these create another one i just did a ctrl c ctrl v and i'll place that there put another one here and i don't know somewhere over here so calculator is normally three buttons wide so i'm going to shrink this down a little bit right something like that and i'm gonna grab this and shrink it down like that and now i can copy these three and just paste them and now i've got row two and do it one more time now i've got row three um i need one more button there so i have a zero and i'm going to need to actually need a row for uh the operators right so let's move this all the way across grab this um now these are too far over gosh gosh grab all those move this over something like that and i don't know i'm just eyeballing this for the purposes of getting this built quickly now if i had a layout manager as somebody was pointing out yeah that would be a heck of a lot easier to do so i'm just gonna right paste these in and i'll update these right so somewhere in here is going to be 0 and i'll add another button in here for equals and we can just start updating these real easy right so there's equals let's make this actually it's usually plus equals isn't it so i don't need that right i can make this uh plus equals there we go um gosh and isn't it normally wider that just looks hideous give me some space there oh you know what it did you know what it did it uh made the glyph is what it did uh that's fine i'll make it a little bit bigger and uglier there i'll change this to subtraction change this to uh multiplication and uh make this division all right two three four but this is button six oh no um okay that one should be five so here's button four i don't know now my names are off so where's that name name name name name name name name there it is um let's do that come over here and i'm gonna rename this to button four i'll rename this to button six there we go so this one's seven but it should be nine because it's right at the bottom here um not tab index nine text there we go nine change this one to eight change this one to seven and right i mean this is pretty productive to be able to go through and add these capabilities quickly here i'll call this button zero and zero cool so i've got a very simple calculator layout here that has all these buttons and now i can do stuff with it now i can make it more calculator-ish right [Music] so cancel button and i'm not going to get into that too right now i'm just trying to do very simple at this point um used to the phone yeah i did it in the phone dialer layout you can use it there's a table layout control for buttons table layout panel there you go sure right and you can drop these in and it'll give you a better layout um and i'll update the sample so it shows that before i uh when i make that available um all right moving on so i've got buttons on on my user interface and once again just to show what it looks like i'll show you it's laid out and managed all of these buttons here for us declared those controls and yes you could go through and modify this but the designer owns this and will make these changes and update this file for you so you don't really want to do that now each one of these buttons are going to do pretty much the same thing for the various numbers right so if i double click on one of these look at this it generates for us an event handler a little block of code that's going to run when you click on things because i double clicked a button the default action for interacting with with a button in windows forms is click click action you're clicking a button what else are you going to do there are other actions you can take with a button but the primary interaction folks are going to take is clicking so it automatically generates the click event handler for us okay so this is what we can use now to interact with the rest of our form interact with our application and provide some value so what should happen when we click the one button easy um i want to go on to the screen and update it and put a one at the end on the far right of that so let's first check to see if uh the calculator screen that's my text box i'll look at the text property of the text box if that equals um if that equals zero dot that default text then i'm going to replace it and i'm going to say calculator screen text equals one otherwise calculator screen text and i'm just going to add one to the right side of it so i'm going to say plus equals one okay so now i have some code that'll run when i press the one button and i can test and see exactly what that looks like what uh no i don't want to do that not right now um i will i want to run my app not run code analysis yeah um i don't where did my run button go here yeah that's what i thought there we go so um yeah f5 i was looking for the button on the toolbar it's very similar to what you may have done in the past with visual basic yes yes yes and why isn't it running come on get running there's the circle there we go so now there's my little application and when i click one it puts ones in the box fantastic let's do that now for the rest of our buttons now i could go through and do double click and copy this exact same text into everything but that's a pain in the neck and it's going to be exactly the same for everything so we can do better let's get rid of this let's go up here and let's rename this to just button click right let's call this number button click right and this first argument that's passed in the sender what's the control what's the object that triggered this event so what i'm going to do is i'm going to say var button equals sender as button and now what i can do is instead of saying text equals one i can now say button.text same thing here button dot text and now if i go back over to my designer yes i know i know i got rid of the button one um let's see i want to i want to keep this name actually here's what i'm going to do i'm going to cheat i like to cheat when i'm writing code uh change this back to button one right and now if i go back to the designer yeah yeah yeah i know see uh that doesn't exist right come here give me back my code um i'll create that one also fine fine because i'm going to make this easier so now if i go to the properties of these i can go down to let's take a look at the events so this is the events panel these are the properties so click it wants to call button one click no instead we're going to call number button click same thing with two i'm gonna call number button click three same thing with four and we're just rolling out this click event handler to all of our buttons and it makes sense these are very much um and yes i realize i use the phone layout that's okay um so now i've got that all wired up in there i'll go back over i don't need to see designer um i want the code and now i can get rid of and it actually did remove button one click and button two click because everything is routing through number button click so now if we run that now all of my buttons should be wired up and using the same event handler here um yeah we built an abstraction that's right wilbo yes over here as calculator screen is private should it be named underscore calculator screen um you'll see folks that's a good question um and right these buttons all work now and do what they're supposed to do cool um so there's the question coming in over in youtube is since calculator screen is private to this control should it be named underscore calculator screen um you'll see folks you'll see developers prefer to keep their controls named with a proper string of text and not use the the underscore or the private field prefixes um just because it makes it easier going through the designer to interact with it um nothing says you have to stay that way but then all of your controls would be named underscore everything which is gonna make it look weird when you're in the designer so um folks usually use the underscore for the notation when they're referring to um backing fields class-based fields that they're interacting with the controls you're working with you'll see folks typically give it a more proper name um why hasn't microsoft ported windows forms controls to modern winforms controls with modern desire without changing design experience because the whole point of bringing windows forms forward was to preserve legacy backwards compatibility so they didn't want to break that experience and there's other user interface frameworks that provide a bit more of that modern experience the text box can still be edited i guess you can change it to read only yes you can that's a good question coming in from um from youtube so i have the events here if i go back to the property um the properties in here there is a read only property to this um hide selection read only so i could make it read only so the only way to interact with it is the buttons absolutely you can do that also let me get rid of some of these extra um windows buttons up here um maximum size minimum size padding start position window state um control box here we go um i don't want you to be able to maximize this so i'm going to turn that off and maximize button is disabled minimize yeah you can minimize this um and of course the close button closes the application so that's good now let's wire up some of these buttons over here right to do that basic interaction um so i'll double click and what should the plus equals button do well we want to take whatever the value is copy it into a buffer and provide that capability to key in some other values so the next time you click it we interact with that buffer so let's create and here's where i'm going to create that um that private field come here you all right so i like to create private fields up here uh private decimal um underscore uh buffer um and let's force that to zero right yeah i can just leave it at zero and that works alright so button three click so this is the plus equals button um so if um if buffer does not equal zero then we're actually going to sum and display the result uh yeah we're going to sum well if there's an operation that's taken place right we want to do that operation so we need to know operations right um still missing property filter i thought there was property filter over here i thought there was a oh no i don't see it i thought there what we had a property filter at one point over here or a way to search through that yeah it's not there anyways back over i didn't mean to pin that i didn't mean to pin that so if the buffer does not equal zero i yeah i need to indicate if there's an operation going on and i've got four types of operations so i could create an enum for those operations right um and i don't need an enum i can get away with just a character right not chat car uh operation and i'll start it with nothing so now i can not just check if buffer right i can check if operation so if we haven't started an operation then i want to put the value the current value into the buffer and indicate that i'm starting an addition operation right why don't you like that um yeah i know it's an empty character literal and i think i need this base all right that's fine um so operation equals uh where's plus plus and uh we'll put into the buffer uh we'll put the current value that's in the text box so uh equals calculatorscreen.txt and i need to cast that to a decimal so decimal parse right cool else if the operation is already taking place we actually need to do the operation so let's uh i'll do this as a as in i could do this as a switch statement couldn't i i could i could uh short um yeah let's do this as a switch statement just because i think it's a little bit cooler yeah let's do that uh calculator screen text equals and we're gonna take um we're gonna take operation we'll do this with a switch expression there we go uh equals uh switch operation right like that right or is it the other way i thought it was the other way and semi at the end so first one if it's plus um then we're going to add the values right so we're going to say [Music] um buffer plus decimal parse we should actually put that value the current value in a decimal so we're not doing it every time decimal current value decimal parse calculator screen text i know that's a little bit behind me here let me there we go make that easier to see there you go um so now i can say uh plus current value done um it's not a semi that goes at the end there it's a comma um if it's minus buffer minus current value um if it's an x it's multiplication current value and if it's a slash and underscore um we're going to do nothing it's going to be one of those values now why is it can i type convert type decimal to string yes i know i know check this out did you know you could do this in visual studio bang do the same thing over here i'm just going to highlight all those and left parentheses uh need to do left right parentheses right there there we go cool and there's my operation um and i want to clear out the buffer and the operation after that so buffer equals zero and uh operation equals empty cool so i need to build similar interactions here for the various other math math buttons math buttons sure i guess that works f5 let's see this thing running and i'll take a look at chat in just a second here i see youtube and uh twitch chat comments that we'll take a look at so uh one two three plus uh four five six oh you know what i didn't i didn't clear the box after you hit plus and you load things into the buffer here i need to clear calculator screen text equals and i'm not i'm not supporting anything to the right of the decimal i get it that's fine so there we go one two three plus seven eight nine nine 12. fantastic so it works it's a very simple calculator but we built this in all of what 10 20 minutes here on on stream so very easy to interact with i've been able to take my business logic from my application and define it in two methods that does all the things i need for this very simple calculator now i have to wire up some of the other buttons still i could do that offline but what i what i hope you've seen here is that with just a little bit of mouse work and writing as a subject matter expert my code in the windows forms code behind it i'm able to get productive quickly here let me go to questions from youtube and from twitch here i don't see any questions coming in from learn tv but over here on uh twitch there's a question let me see i'm gonna cue these up here um uh let me see uh i'm scrolling through um hey guacamole i'm not going to answer that just yet here yeah i was standing in front of the code got that fixed multi-carrot typing is awesome yes um i love the blazer logos over there in in chat let's go to this question first is there a tool migration guide that helps developers migrate their win forms to wpfor.net maui as soon as it's released we're working on it we're working on on that um that document that that e-book it'll be in our architecture guides it's something we're absolutely planning to do but it's uh very much a work in progress at this point but look for something coming out um yeah in november as we get close to the release of that um you love visual studio thank you so much for that comment um question here does visual studio support golang full visual studio visual studio 2019 visual studio 2022 does not natively support golang there might be a way to add in an extension to do it but it does not ship with support for golang you will however find support for golang in visual studio code where that is a much more extensible tool that a text editor that folks have built support for all kinds of languages and all kinds of capabilities in there you can use visual studio code to build java apps c plus applications python all kinds of stuff including net javascript type script it's all supported in visual studio code and you can certainly build and work with it in that that tool looking over at youtube um switch statements are compiled and faster than if else [Music] yes they are compiled um [Music] i'm not sure if i would say that they're necessarily faster so um how long this session will take how many sessions like this so this today's each one of these sessions each one of these streams are is two hours long and we're gonna be covering windows app development with winforms and wpf um through the end of july we'll get into august and go back to c-sharp for beginners i believe is what we'll be looking at um [Music] looking forward to see what's best best msix or click once click once is is now available for net five and it's going to be even better for net six um and uh my friend um the manager for the program manager for winforms development um and wpf development uh olya gavrish has been she showed some demos of click wants as part of microsoft build you're gonna see more about that in the desktop stand-up uh streams that we run on youtube and on twitch on the visual studio and net channels more on that is going to be coming as that grows but we think click once is something that's great for folks to use but i we also understand that that you want to use msix for folks that you don't want entirely uh bound by some of the click once constraints what's difference between an arraylist and a generic list and what are the best use cases um [Music] gosh now you're getting me thinking about collections the difference between arraylist and a generic list i don't think arraylist lets you edit items in it i forget the difference between the two generic list is is definitely where folks prefer to work even though it takes a bit more memory it takes a bit more interaction um on behalf of the processor because of how it shifts data around but the generic list as much is something that folks really prefer using there you go arraylist is for boxed elements and is very old it is uh boxed elements referring to value types characters numbers booleans those are the ones that you're going to see used there all right taking a look here yeah i thought arraylist was not resizable as well um millix asks will i be covering.net maui at some point yes we'll be covering maui closer to release on this channel i don't want to do beginner content for a framework that still has potential changes and is in preview um we'll cover it as we get a little bit closer probably september october time frame we'll start uh thinking about and looking at covering.net maui as as we get close to it over on my personal channel we're gonna experiment with net maui in in july august we have a blazer application we've been building on the c sharp fritz twitch channel um and there's videos that have been trickling out on these uh c sharp for its youtube channel showing building a a large scale blazer application i expect to spend some time in in july or august um getting that working with net maui taking a look here seeing if there's other questions 10 minutes left arraylists are resizable i thought okay okay arraylists are resizable see i haven't worked with arraylist too much um and i didn't think arraylists were strongly typed either yeah um [Music] and i'm i'm i'm seeing folks spamming here please stop spamming in youtube um i yeah i can put folks in timeout over there so so all right yeah not a lot of arraylist is is much older it is no longer recommended yet the generic list of t is where folks prefer to be developing and working with now so uh is windows forms cross-platform no it is not no there are folks that have built emulators for it and you can use things like like the wine emulator on uh linux and you can run windows forms applications on linux but you're running on somebody else's emulation of windows for the typical application that you're going to be developing and deploying in 99 of the scenarios it's not cross-platform there are ways around it but they're not recommended so it's possible but possible in name only and not something that the net team supports so you you would be on your own if you try to run winforms on mac or on linux what do i think about winform's future it's a good question um winforms is is going to in my belief always be supported as long as there is windows because it is the simplest most basic way to build applications to deploy with net on windows so as long as there is windows you will have windows forms available um things like wpf uwp we've seen other user interface frameworks that have been deprecated and and are no longer supported wpf and uwp we'll see what their futures are um but the.net team is going to be supporting wpf as part of net six windows has wpf and winforms as part of net framework there went my camera darn it darn it camera went to sleep on me um now i am going to change back to the other scene then because it's time to wrap up that's annoying that's really annoying um there we go i was not expecting that that it would just go to sleep like that on me i need to check that camera settings i had to move it back from when i had it deployed um we had a stream yesterday outside it was definitely something to behold hey code with sean good to see you um next session titles i'll have planned and i'll release those uh over on youtube um and on the github um as i get them planned this week so um will it be overkill to create an interface i operation for a calculator operation depends on how complex a calculator you want to make um right oh depends on on how much you want to build there um okay we've got about five minutes left i'm just keeping an eye on chat here and if there's any questions that i want we want to go through and and touch on how often will we have these sessions um these sessions this this stream you're gonna find every monday at 9 00 a.m eastern uh was at 1300 utc um for the next uh yeah for going forward i'll be here every week the outside stream was great thank you i'm glad you enjoyed that um lots more with that uh i want to do another outside stream in august so we'll see if that happens um yeah deploying windows apps with click once yep there's a video about that available absolutely so what do i think about developing winforms with no form designer his question that came in over here on youtube um while it's possible it's not a great experience i mean there are folks that do that but visual studio you can get a community edition and work with that um and why not i mean you're going to have just a a much more productive experience building using uh visual studio with winforms so possible i i would avoid uh i would avoid building directly on the command on in a text editor with winforms you're going to end up juggling it and having to position things by hand then um mario asks is there any news about net maui for linux no not happening uh and and scott hunter in his sessions you can find his session from dev intersection 2021 um he very clearly said said give him an audience give him a a a purpose for why it needs why you need that is it and what he's found for most folks is it's just a checkbox it's i need to say i can do this it's not folks saying i have a business reason i have i i have this capability that i need net maui building for linux so he's very open he wants to hear that feedback from folks that are building apps that need to work on linux and and trying to understand the size of that of that community because when you when you look at the the size the impact of net maui and the four platforms i mean it's supporting four platforms out of the box it's ios and android are the largest user communities billions of devices then windows billions of installs then mac and it's an order of magnitude less 100 000 installs of mac and linux is another order of magnitude less so it's it's lower down the the reach so to add a much more significant platform to be able to support got pushed off as you know what let's make sure we get these four core ones working properly and we'll talk to folks and see if we can get some community support we can get some some capability to do linux with dotnet maui and quite frankly it's just not there the it's something that folks are not um they're not stepping up on and it's not something that folks really have shown interest in building something with beyond saying oh will it work on linux so um what's the status of crystal reports for visual studio 2019 you know what i don't know um suggestion about net maui for embedded systems show a business reason let's see it so are we going to be able to create a maui app in visual studio 2022 um the designers and tools are not in the preview one of visual studio 2022 they will be in a future preview release um is native compilation possible with net that's what dot net maui does for ios and android yes and you'll get uh aot ahead of time compilation for blazer is coming as part of net six as well so it's not completely there but it's possible that's right you can't do net maui compilate.net maui um compilation or work inside of visual studio 22. it's not there yet it's it's coming um yeah linux can't decide on a standard ui framework so it makes it really hard to build a standard ui framework deployment um for net mali so all right that's all i have time for we're wrapping up here thank you so much everybody for watching i really appreciate you joining us um everybody that's out there on um learn tv i hope you have a fantastic rest of your day and uh we'll see you next time those of you that are watching on youtube whether you're watching live you're watching the recording hope you have a great one and we'll see you next time over on youtube but for those of you that are watching on twitch it's raid time let's set up a raid let's find another stream on twitch that we can read that we can check out we can support we can bring some love to i'm gonna take a look over on the big twitch tv network over here and wow i'm gonna send this over to our friend lana lux she's doing game development lana locks on twitch is doing game development she's building um games all by herself really great stuff that you check out over there she's working with unity which is a net based framework for building games thank you so much everybody for watching i hope you enjoy the rest of your day lana's channel is marked for mature audiences you've been warned if you want to stick around that's great if not that's okay too and i will see you tomorrow over on my channel twitch.tv slash c-sharp fritz we'll be doing some more blazer development and optimizing doing some performance and deploying to an azure static website we'll see you [Music] later [Music] you
Info
Channel: dotnet
Views: 15,700
Rating: undefined out of 5
Keywords: .NET, windows forms, c#, csharp, windows, visual studio
Id: IGNBQnS9VRI
Channel Id: undefined
Length: 120min 36sec (7236 seconds)
Published: Mon Jun 28 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.