Build A Stock Downloader With Visual Studio 2015 And C#

Take Your Programming Skills To The Next Level Today!
4.7 (26 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
346 students enrolled
25% off
Take This Course
  • Lectures 20
  • Length 1.5 hours
  • Skill Level Intermediate Level
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 11/2015 English

Course Description

Why enroll in this course? Perhaps you have programmed a little. But writing small code samples ultimately leads to limited skills. Creating an application requires the synthesis of many different skills. In this course, you learn how to build a complete, but still understandable, application using Microsoft C#, Visual Studio 2015, and Yahoo. This application has an interface with numerous parts, consists of two forms, and can download stock information from Yahoo. This course, in other words, is for those who want to grow their skills. This course consists of HD video lessons, downloadable zip files of all the project files, and cloneable GitHub files. Please note that the part of the course on Dow30/Nasdaq/SP100 does not work for the moment because those API's have been changed. This will be fixed eventually. These are included so you can check your work against ours at each stage of the project. Assuming you complete the course, you'll be done in only two and a half hours, so you'll learn a lot within a relatively short period of time. Let's get coding!

Note: Promo video template licensed from PRESENTERMEDIA

What are the requirements?

  • This Course Uses Visual Studio 2015
  • This Course Assumes You Understand The Basics Of C#
  • This Course Does Not Work With Versions Of Visual Studio Below 2015

What am I going to get from this course?

  • Write Code To Access External Websites
  • Write Code To Download Information From Yahoo
  • Write Code That Uses Web Response And Request Objects
  • Use Try/Catch Blocks To Make Applications More Stable
  • Write A Method That Sets The Current Time
  • Write A Method That Checks Whether A Date Is Valid
  • Use Several String Functions Like IndexOf And Replace
  • Understand Why Certain Namespaces Are Needed
  • Use Linq To Easily And Efficiently Operate On Collections Of Items
  • Create A Program With Multiple Forms
  • Write Code To Make, Open And Read Files
  • Create Several Useful Classes
  • Write Code To Implement Asynchrony

Who is the target audience?

  • This Course Is For Intermediate To Advanced C# Programmers
  • This Course Is Not For Beginning C# Programmers

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Overview Of The Application We Will Build

Lesson Objective: Become familiar with the functions of the application

Learning Results:

1) Learn how the application can be used to download stock information directly from Yahoo

2) Learn how to open the files or search for file names with certain letters


Lesson Objective: Get the project files from GitHub

Learning Results:

1) Learn how to clone a repository

2) Learn how to open the solution files from the repository inside Visual Studio

Section 2: Create The Project And Build The Interface

Lesson Objective: Create a windows form application, and build the menu

Learning Results:

1) Create a windows forms project

2) Build a menu with sub menu items

3) Assign meaningful code names to the menu items


Lesson Objective: Build the rest of the interface

Learning Results:

1) Add labels, buttons, and text boxes

2) Add combo boxes, and numeric up and downs

3) Rename the form to frmYahooDownloader


Lesson Objective: Fill the controls that store lists

Learning Results:
1) Fill the start from month combo box with Jan,Feb,....,Dec

2) Fill the until month combo box with Jan, Feb,....,Dec

3) Set the max and min values for the starting month day with 1 for the min and 31 for the max

4) Set the max and min values for the stopping month day with 1 for the min and 31 for the max

5) Set the min and max values for the start year with 1900 for min and 2100 for max

6) Set the min and max values for the end year with 1900 for min and 2100 for max

Section 3: Writing Code To Make The Application Work

Lesson Objectives: Declare two fields to store information

Learning Results:

1) Declare a field to represent the download folder

2) Declare a field to represent the interval of time for controlling downloads


Lesson Objective: Understand how to write a function to set the current date

Learning Results:

1) Write SetCurrentDate()

2) Configure the from month combo box to index 0, which is January

3) Configure the to month combo box to index 0, which is January


Lesson Objective: Understand how to use a folder browser dialog

Learning Results:

1) Understand how to place a file browser control

2) Learn how to write code to make the file browser work

Challenge: Before watching the next video, can you figure out how to check that the dates entered are sensible? Fo example, the start date should not be later than the end date. You can use DateTime objects constructed from the combo boxes, and numeric up and downs, and then compare them using if/else if.


Lesson Objective: Write a method to check date ranges

Learning Results:

1) See how to use try/catch to make the application more stable

2) Write a series of if/else blocks to check that the dates chosen are sensible

Challenge: Because a user can also enter the save path by typing, can you figure out code to check how to confirm the folder exists? You can use Directory.Exists as a clue. A solution is in the next video.


Lesson Objective: Verify download folder exists and ticker symbols are entered

Learning Results:

1) Learn how to use Directory.Exists

2) Learn how to write code to ensure a text box is not empty

3) Understand why it's necessary to do basic error checking


Lesson Objectives: Ensure that ticker symbols are all letters and numbers

Learning Results:

1) Use DatesVerified values as a condition check in an if statement

2) Write Linq to check that symbols entered are acceptable as ticker symbols


Lesson Objective: Write a function that controls the time interval for downloads

Learning Results:

1) Write the code to call and implement SetInterval()


Lesson Objective: Create a class file, and write a method

Learning Results:

1) Create a new class file to store helper methods

2) Create a method called SplitTickers


Lesson Objective: Create a function that downloads stock information from Yahoo

Learning Results:

1) Create a using block so low level resources are properly disposed of

2) Make a web client object and use it

3) Create and use stream writers and stream readers


Lesson Objective: Build up the string that is used to download files from Yahoo

Learning Results:

1) Use Path.Combine

2) Build a string to represent a Yahoo URL

3) Understand why try/catch is necessary

4) Download a file and check the results


Lesson Objective :Create a form that opens after a download completes

Learning Results:

1) Create a new form

2) Add a text box for accepting search terms

3) Add a list box that shows file names ending in csv only


Lesson Objective: Populate list box with all the files that end in csv in the download folder

Learning Results:

1) Populate the list box

2) Make sure the folder from the main form connects to the folder in the list form


Lesson Objective: Make the file list searchable

Learning Results:

1) Make each file openable in notepad

2) Write code to search through the file lists when there are many

Section 4: Adding GetIndicies.cs

Lesson Objective: Use a background worker to make the application not freeze as it downloads many files

Learning Results:

1) Move the code after VerifyDates() inside if to a new method called DownLoad()

2) Add a background worker

3) Add code to the background worker do work method

4) Add code to the background worker complete method

Section 5: Where To Go From Here

Lesson Objective: Learn about resources you can get for free to take your studies of C# further.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Tom Owsiak, Web, Math, Stats., and Physics Expert

  • I have nine years experience as a teacher of mathematics, physics, statistics, and programming. I worked for five years as a database programmer using various technologies such as .NET, Clipper, SQL, SQL Server, SAS, Excel, and others. I'm the publisher of one of the most successful programming courses on udemy, called "Learn C# With Visual Studio 2013". Currently, I work as a mathematics and computer science teacher at a college in NY.
  • Related Education:
  • Master of Science in Applied Statistical Computing, Kennesaw State University
  • Bachelor of Arts, Pure Mathematics, Queens College
  • Associates of Science in Computer Programming
  • Creator of more than 1620 math, physics, statistics and programming videos
  • Programmer of more than 500 educational simulations

Ready to start learning?
Take This Course