locked
New to C# and I need guidance on how to get started on making apps RRS feed

  • Question

  • I have been scripting for about 10 years or so now, and I started in the basic DOS shell, then a little bit with VBS, and when PowerShell came out I jumped on that immediately, because I really hated VBS, to be honest. I love PowerShell and it has helped me immensely in my career by helping create solutions that automate repetitive tasks and I find it alot of fun to use, but now I am looking to move on to the next level, or rather I am looking to add an OOP skillset. I have written several PowerShell advanced functions and I feel that C# would be the best language to go with since it seems to have many similarities with the way I write PowerShell tools and I think this will help me feel more comfortable with C#. I have written small programs in Java and C++ for my college degrees, but that was just to get the diploma and I have not done much with an OOP for a few years. 

    Now my question is, how would I go about starting my first app? Should I just mimic what I have done in PowerShell and create a C# equivalent? My problem seems to be a "writer's block", if you will, and I was trying to search online for "ideas for C# software developers" and I found a few things, but I thought I would ask on here as well, because I felt this is probably the best resource to use.

    BTW, I do have two young children and I was thinking about creating a simple kid's game and I do have that on my list, but wanted to add some more business like projects. Also, my oldest child takes Karate and his instructor was asking me about putting together a simple bracketing application to keep track of the kids scores and their placement in Karate events so he can do away with using paper and pencils. He would like this app to be smart phone friendly across all platforms, but not certain if C# would be the ideal language for this. So, that is at least another project I have on my list, but would love to know what you all can add as well.

    Thank you all very much for your help, it is much appreciated.

     




    Thursday, December 31, 2015 7:10 PM

Answers

  • Hey Ron,

    I think having a little application in mind is a pretty good way to learn development.

    A potential problem is that you don't really want to put yourself under pressure for your first app.

    Unless it's very simple, the first thing you write is probably not going to be so great.

    My advice would be to explain you're just about to learn this stuff and you'll have a go once you're confident but that isn't just yet.

    .

    To run on all phones, the easiest approach would be to make this a web app.

    I'd probably go with asp.net mvc, web api 2, entity framework and a bunch of javascript frameworks like angular.

    There's a lot to learn there. In fact that's a HUGE CLIFF to climb for your first app. 6 months learning and development and you probably still won't have learnt that lot unless you have 1 on 1 coaching from a lead developer.

    I would think you're best learning c# object orientated theory first to give you some grounding.

    Then take a look asp.net mvc samples.

    Like some of the samples here:

    https://msdn.microsoft.com/en-gb/data/ee712907.aspx?f=255&MSPPError=-2147217396

    If this thing is going to be a web app then you need a web server of some sort. It could be hosted in azure but someone is still going to have to pay for that.

    You will need a database to store the data in, which can also be azure.

    Unless you happen to have a internet facing web server of your own to hand.


    Hope that helps.

    Technet articles: WPF: Layout Lab; All my Technet Articles

    • Marked as answer by Ron_Ratzlaff Tuesday, January 5, 2016 5:20 PM
    Monday, January 4, 2016 1:50 PM

  • C# is powerful in many applications . JavaScript/Apache Cordova is a new way to make web apps for multiple devices you might check that out it has built in local save options for android and IPhone devices. Java script is often used for many web applications and it can do many of your calculations client side. JavaScript is a very fast way to build html programmatically on client side so for that reason you will see it used everywhere.

    If I was doing your karate score app I would probably do it in apache cordova Visual Studio has an app for that.

    You could also do it with JavaScript as a web page and store data locally as Cookies. (this would not require server side code at all)

    Or you could use JavaScript and run C# or PHP for storing data to server with SQL.  PHP can talk to Apache Servers. C# talks to windows servers.

    If you are doing web I suggest you learn JavaScript. Java (not JavaScript) Is also a good way to make apps but I'm not familiar with it.

    If you have access to  a windows server you can absolutely use C#. Get the Visual studios app and start messing around with it The IDE makes it really easy to figure things out as you go. I suggest you rely on Java script pretty heavily if you are going to make a web app. Use C# for the real essential server side stuff like storage but use JavaScript for much of your web app framework.

    I'm just a hobbyist though but I hope this helps.



    Sunday, January 3, 2016 4:29 PM
  • Okay, so the Karate app should be a web app, got it. Now I am not well versed in JavaScript, but I can start learning that along with C#. 

    Those dofactory.com products look great, btw. 

    What do you all think of Web App Generator?

    Thanks


    What you need to be doing is using an ASP.NET MVC solution hosted by IIS. Any mobile device or computer has a Web browser. So you keep everything centralized on the Web server and nothing is deployed to a client computer or mobile device.

    The tutorial is using MVC 3 but it really doesn't matter if using MVC 5 in VS2015. You should be able to do it using MVC 5. You are not ready to be doing anything with JavaScript to be using it effectively with any Web solution so you need to toss it to the side for now.

    http://www.asp.net/mvc/overview/older-versions/mvc-music-store/mvc-music-store-part-1

    https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx

    The Community Edition has most of the bells and whistles that a professional version of VS has in it

    You need to download MS SQL Server Express Edition like 2014 with the Management Studio

    The MVC tutorial is going to be talking about using Entity Framework in the tutorial, which is Code First.

    https://www.simple-talk.com/dotnet/.net-framework/different-approaches-of-entity-framework/

    But  the better out of the 3IMHO is DB First, which you can look into later.

    The VB.net  DB first tutorial has pictures that the C# one has lost.

    http://www.vbforums.com/showthread.php?540421-Tutorial-An-Introduction-to-the-ADO-NET-Entity-Framework

    Finally, you need to begin posting to the MVC forum. 

    http://forums.asp.net/1146.aspx/1?MVC

    https://social.msdn.microsoft.com/Forums/en-US/home?forum=adodotnetentityframework

    • Marked as answer by Ron_Ratzlaff Tuesday, January 5, 2016 5:19 PM
    Tuesday, January 5, 2016 6:19 AM

All replies

  • http://shop.oreilly.com/product/0636920027812.do

    The book above is using WPF and XAML.

    https://en.wikipedia.org/wiki/Object-oriented_programming

    As look at the chapter out line in the book above, you'll see it going over basic OOP concepts.

    https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx

    If you think VBS, Powershell and DOS are enough for you to know about OOP and C#, then you maybe in for a rude awakening.

    • Proposed as answer by petersmcintyre Monday, January 4, 2016 4:51 AM
    • Unproposed as answer by petersmcintyre Monday, January 4, 2016 5:04 AM
    Thursday, December 31, 2015 8:14 PM

  • C# is powerful in many applications . JavaScript/Apache Cordova is a new way to make web apps for multiple devices you might check that out it has built in local save options for android and IPhone devices. Java script is often used for many web applications and it can do many of your calculations client side. JavaScript is a very fast way to build html programmatically on client side so for that reason you will see it used everywhere.

    If I was doing your karate score app I would probably do it in apache cordova Visual Studio has an app for that.

    You could also do it with JavaScript as a web page and store data locally as Cookies. (this would not require server side code at all)

    Or you could use JavaScript and run C# or PHP for storing data to server with SQL.  PHP can talk to Apache Servers. C# talks to windows servers.

    If you are doing web I suggest you learn JavaScript. Java (not JavaScript) Is also a good way to make apps but I'm not familiar with it.

    If you have access to  a windows server you can absolutely use C#. Get the Visual studios app and start messing around with it The IDE makes it really easy to figure things out as you go. I suggest you rely on Java script pretty heavily if you are going to make a web app. Use C# for the real essential server side stuff like storage but use JavaScript for much of your web app framework.

    I'm just a hobbyist though but I hope this helps.



    Sunday, January 3, 2016 4:29 PM
  • C# is powerful in many applications . JavaScript/Apache Cordova is a new way to make web apps for multiple devices you might check that out it has built in local save options for android and IPhone devices. Java script is often used for many web applications and it can do many of your calculations client side. JavaScript is a very fast way to build html programmatically on client side so for that reason you will see it used everywhere.

    If I was doing your karate score app I would probably do it in apache cordova Visual Studio has an app for that.

    You could also do it with JavaScript as a web page and store data locally as Cookies. (this would not require server side code at all)

    Or you could use JavaScript and run C# or PHP for storing data to server with SQL.  PHP can talk to Apache Servers. C# talks to windows servers.

    If you are doing web I suggest you learn JavaScript. Java (not JavaScript) Is also a good way to make apps but I'm not familiar with it.

    If you have access to  a windows server you can absolutely use C#. Get the Visual studios app and start messing around with it The IDE makes it really easy to figure things out as you go. I suggest you rely on Java script pretty heavily if you are going to make a web app. Use C# for the real essential server side stuff like storage but use JavaScript for much of your web app framework.

    I'm just a hobbyist though but I hope this helps.


    The person had better learn C# and OOP first  This stuff abut JavaScript and using the Web without the OP knowing OOP and design patterns (the basics) is going to be nothing but pure trouble and a lot of frustration  for the OP.  The OP needs to know and understand the basics of OO and what it means in developing programs and how to effectively use it in developing NET solution.   
    Sunday, January 3, 2016 11:50 PM
  • All snark aside.

    You are gonna want to know JavaScript if a web app is what you'r after. Your knowledge of C# can be minimal to make usable web apps. I would still suggest you get your feet wet before you learn design patterns because that is how I learn. Reading a book on coding isn't a good way for me to learn. If it was I would just buy a Japanese textbook and be fluent in 10 hours of reading.(but seriously that would be cool.)

    If you are able to retain loads of details without context then a book would be a perfect start, but if you like me you will want to have a frame of reference before you start to learn structure. Not everyone learns like me I wish I could just read a book and retain it all I can't and I'm sorry.


    P.S.

    I really am hurt by your response DA924. The fact that you are an authority on the subject only makes it worse when you attack me. 

    P.P.S.

    I have that book and I didn't like it.

    I do like C# 5.0 in a nutshell.

    A reference book is more to my liking. As I learn I become curios about aspects of the code I don't understand. Curiosity whets my memory to a sharp edge.

    I have been doing this for over 40 years professionally,  the last 16 in .NET and the last 10 as a Web developer.  You are giving bad advice to someone that doesn't have a clue about C# or .NET or Web development

    You are an amateur giving bad advice to another amateur. Look at the title of the thread will you.

    Monday, January 4, 2016 4:28 AM
  • Hello,
    Everyone has his own way of starting a new technology.
    Some start from book/online articles, Some by watching and asking to others and few start exploring first and see the book or article when they stuck. 


    Below are few good articles you can look into:

    https://msdn.microsoft.com/en-in/library/aa288436(v=vs.71).aspx
    https://msdn.microsoft.com/en-us/library/67ef8sbd.aspx

    Also below are few books :

     1) head first C#
     2) Pro C# 5.0 and the .NET 4.5 Framework (Expert's Voice in .NET) 

    below are video tutorials on Microsoft site on topic "c# fundamentals for absolute beginners"

    https://channel9.msdn.com/Series/C-Fundamentals-for-Absolute-Beginners 

    Also you can always post your queries to MSDN forum.


    Want to add MVP with my name.

    Monday, January 4, 2016 5:46 AM
  • Hello,
    Everyone has his own way of starting a new technology.
    Some start from book/online articles, Some by watching and asking to others and few start exploring first and see the book or article when they stuck. 


    Below are few good articles you can look into:

    https://msdn.microsoft.com/en-in/library/aa288436(v=vs.71).aspx
    https://msdn.microsoft.com/en-us/library/67ef8sbd.aspx

    Also below are few books :

     1) head first C#
     2) Pro C# 5.0 and the .NET 4.5 Framework (Expert's Voice in .NET) 

    below are video tutorials on Microsoft site on topic "c# fundamentals for absolute beginners"

    https://channel9.msdn.com/Series/C-Fundamentals-for-Absolute-Beginners 

    Also you can always post your queries to MSDN forum.


    Want to add MVP with my name.

    Or the OP can take the fast track after getting the basics of C# or VB.NET and have at it running all the projects and solutions and getting the source code too to look at the code and see what is happening with various .NET technologies. It will also teach the OP OO as he or she execute the code covering OO and know what it means and what it is for in overall OO development.

    http://www.dofactory.com/products/net-design-pattern-framework

    Monday, January 4, 2016 6:13 AM
  • Hey Ron,

    I think having a little application in mind is a pretty good way to learn development.

    A potential problem is that you don't really want to put yourself under pressure for your first app.

    Unless it's very simple, the first thing you write is probably not going to be so great.

    My advice would be to explain you're just about to learn this stuff and you'll have a go once you're confident but that isn't just yet.

    .

    To run on all phones, the easiest approach would be to make this a web app.

    I'd probably go with asp.net mvc, web api 2, entity framework and a bunch of javascript frameworks like angular.

    There's a lot to learn there. In fact that's a HUGE CLIFF to climb for your first app. 6 months learning and development and you probably still won't have learnt that lot unless you have 1 on 1 coaching from a lead developer.

    I would think you're best learning c# object orientated theory first to give you some grounding.

    Then take a look asp.net mvc samples.

    Like some of the samples here:

    https://msdn.microsoft.com/en-gb/data/ee712907.aspx?f=255&MSPPError=-2147217396

    If this thing is going to be a web app then you need a web server of some sort. It could be hosted in azure but someone is still going to have to pay for that.

    You will need a database to store the data in, which can also be azure.

    Unless you happen to have a internet facing web server of your own to hand.


    Hope that helps.

    Technet articles: WPF: Layout Lab; All my Technet Articles

    • Marked as answer by Ron_Ratzlaff Tuesday, January 5, 2016 5:20 PM
    Monday, January 4, 2016 1:50 PM
  • OMG!!

    Like Leopards pouncing on a baby Impala - this is AWESOME!!

    Wow, I appreciate all your help and support. 

    Now I just got get time to read all of your comments - LOL. 

    Tuesday, January 5, 2016 4:45 AM
  • Reading all the replies reminds me an incident of my college time. When we started C++ learning (Started programming from C++ also) instructions were given to learn step by step. So started with the basics like data types then loops etc.

    But after few days some of batch mates stated feeling bore in learning data types. So some of them started reading about pointers and some started file handling first. They started copying small programs from books and tried executing. Now to understand file handling or pointers, it requires to have knowledge of Data types. So to understand the pointers and file handling they learnt datatypes but this time they had much curiosity and interest and a valid reason to learn.

    And finally I can say they have equal understanding on language after the course even some of them were better.

    So it’s just a way of individual to make interest in topic.

    Here in forums lot of resources were shared but finally it will be you who have to find a way of learning with interest.

    Happy learning


    Want to add MVP with my name.

    Tuesday, January 5, 2016 4:51 AM
  • If you think VBS, Powershell and DOS are enough for you to know about OOP and C#, then you maybe in for a rude awakening.

    Was there anywhere at all that I even remotely implied that my knowledge on the aforementioned scripting technologies was enough to help me grasp OOP concepts?

    I have no idea how you arrived at that, but I appreciate your comment and offering your feedback. 

    Thank you

    Tuesday, January 5, 2016 4:54 AM
  • Great info!

    LOL, I know the difference between Java and JavaScript. 

    Thanks brother. 

    Tuesday, January 5, 2016 4:57 AM
  • If you think VBS, Powershell and DOS are enough for you to know about OOP and C#, then you maybe in for a rude awakening.

    Was there anywhere at all that I even remotely implied that my knowledge on the aforementioned scripting technologies was enough to help me grasp OOP concepts?

    I have no idea how you arrived at that, but I appreciate your comment and offering your feedback. 

    Thank you


    It's a different ball game altogether is the point that is .NET, C# and OO is altogether different. And if you don't know the basics of OO, then you will struggle.
    Tuesday, January 5, 2016 5:01 AM
  • Okay, so the Karate app should be a web app, got it. Now I am not well versed in JavaScript, but I can start learning that along with C#. 

    Those dofactory.com products look great, btw. 

    What do you all think of Web App Generator?

    Thanks


    Tuesday, January 5, 2016 5:33 AM
  • Okay, so the Karate app should be a web app, got it. Now I am not well versed in JavaScript, but I can start learning that along with C#. 

    Those dofactory.com products look great, btw. 

    What do you all think of Web App Generator?

    Thanks


    What you need to be doing is using an ASP.NET MVC solution hosted by IIS. Any mobile device or computer has a Web browser. So you keep everything centralized on the Web server and nothing is deployed to a client computer or mobile device.

    The tutorial is using MVC 3 but it really doesn't matter if using MVC 5 in VS2015. You should be able to do it using MVC 5. You are not ready to be doing anything with JavaScript to be using it effectively with any Web solution so you need to toss it to the side for now.

    http://www.asp.net/mvc/overview/older-versions/mvc-music-store/mvc-music-store-part-1

    https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx

    The Community Edition has most of the bells and whistles that a professional version of VS has in it

    You need to download MS SQL Server Express Edition like 2014 with the Management Studio

    The MVC tutorial is going to be talking about using Entity Framework in the tutorial, which is Code First.

    https://www.simple-talk.com/dotnet/.net-framework/different-approaches-of-entity-framework/

    But  the better out of the 3IMHO is DB First, which you can look into later.

    The VB.net  DB first tutorial has pictures that the C# one has lost.

    http://www.vbforums.com/showthread.php?540421-Tutorial-An-Introduction-to-the-ADO-NET-Entity-Framework

    Finally, you need to begin posting to the MVC forum. 

    http://forums.asp.net/1146.aspx/1?MVC

    https://social.msdn.microsoft.com/Forums/en-US/home?forum=adodotnetentityframework

    • Marked as answer by Ron_Ratzlaff Tuesday, January 5, 2016 5:19 PM
    Tuesday, January 5, 2016 6:19 AM
  • Great info!

    Thanks again. 

    Tuesday, January 5, 2016 5:19 PM
  • What you need to do after you do the MVC music store tutorial is take the below tutorial and covert it over to MVC.

    http://www.vbforums.com/showthread.php?540421-Tutorial-An-Introduction-to-the-ADO-NET-Entity-Framework

    Tuesday, January 5, 2016 7:31 PM