OOP Class14

Jump to: navigation, search


Extra Stuff

File IO

write file

    string fileName = "test.txt";
            string folderPath = "c:\\user\\";  
            FileStream fs;
            //Make sure the the File exists if not create it if so open it
            if (!(File.Exists(folderPath + fileName)))
                fs = File.Create(folderPath + fileName);
                fs = new FileStream( folderPath + fileName , FileMode.Open, FileAccess.ReadWrite );
            StreamWriter sw = new StreamWriter(fs);       //use streamwriter to write to file
            sw.Write("Hello World!!!");
            sw.Close();                                   //close writer
            fs.Close();                                   //close file stream


read file

    StreamReader sr = new StreamReader(fs);
            while( sr.Peek() > -1 )


File Counter

http://iam.colum.edu/oop/classsource/class14/hitCounter.aspx [- source]

Send Mail

<% @Page Language="C#" %>
<% @Import Namespace="System.Web.Mail" %>
    //set up some strings for the email
    string strTo = "only_a_test@fastmail.fm";
    string strFrom = "jeff@interactive.colum.edu";
    string strSubject = "Hi jeff";
    string strBody = "A real nice body text here";
    //Send email
    SmtpMail.SmtpServer = "localhost";
    SmtpMail.Send(strFrom, strTo, strSubject, strBody);

http://iam.colum.edu/oop/classsource/class14/mail.aspx [-source]

Upload a File

http uploader

Add executionTimeout and maxRequestLength to the web.config so that large uploads will not fail.

        httpRuntime Attributes:
            executionTimeout="[seconds]" - time in seconds before request is automatically timed out
            maxRequestLength="[KBytes]" - KBytes size of maximum request length to accept
            useFullyQualifiedRedirectUrl="[true|false]" - Fully qualifiy the URL for client redirects
            minFreeThreads="[count]" - minimum number of free thread to allow execution of new requests
            minLocalRequestFreeThreads="[count]" - minimum number of free thread to allow execution of new local requests
            appRequestQueueLimit="[count]" - maximum number of requests queued for the application
            enableKernelOutputCache="[true|false]" - enable the http.sys cache on IIS6 and higher - default is true
            enableVersionHeader="[true|false]" - outputs X-AspNet-Version header with each request

multipart form

<form enctype="multipart/form-data" runat="server">
  <td>Select file to upload:</td>
  <input id="myfile" type="file" runat="server"></td>
  <input type=button id="btnUploadTheFile" value="Upload" 
        OnServerClick="btnUploadTheFile_Click" runat="server" />

Parse the multipart form and save the file msdn library. System.Web.HtmlInputFile.PostedFile Property

void btnUploadTheFile_Click(object Source, EventArgs evArgs) 
    //Path to save file
    string strBaseLocation = "";
    if (null != myfile.PostedFile) 
        // Get the HTTP posted file instance (to simplify the code) 
        HttpPostedFile postedfile = myfile.PostedFile; 
        // Get the filename 
        string filename = new System.IO.FileInfo(postedfile.FileName).Name; 
        string filesize = postedfile.ContentLength.ToString();
            txtOutput.InnerHtml = "File " + strBaseLocation + filename + " uploaded successfully";
        catch (Exception e) 
                txtOutput.InnerHtml = "Error saving " + strBaseLocation + filename + "
"+ e.ToString();
        //Do some other stuff 
        //maybe  like send an email to let admin know file was uploaded

http://iam.colum.edu/oop/classsource/class14/up.aspx [up.aspx - source] [web.config - source]

Final Review

OOP Final Review

  • Be very familiar with c# syntax
    • Basic object types (int, bool, string)
    • Conditional and Branching statements
    • Arrays and Generics ie List
  • Understand Classes and Inheritance.
  • Use some advanced class features such as abstract classes and virtual methods that are overridden
  • Understand class relationships
    • Is A
    • Has A
    • Uses A
  • Understand Encapsulation, Abstraction and Polymorphism
    • Abstraction
Each class should abstract its behavior in order to increase usability, reuse, and organization.
    • Encapsulation
Each class should contain all of the properties and methods it needs. It should only expose what is necessary to outside classes.
    • Polymorphism
many forms, same code interface but interchangeable classes
  • Be able to read and create UML Diagrams
  • Be able to recognize and use simple design patters

The final will be consist of two sections the writtens section and the practical section. The practical section will be open everything excpet open mouth (yes open note open book open web). You will not be ablt to use any of theese resources during the written section.