Вы находитесь на странице: 1из 19

COMPSCI 280 S2 2015

Enterprise Software Development


Getting Started with Microsoft Visual Studio, .NET and C#
Jim Warren, jim@cs.auckland.ac.nz
Welcome (to this part of 280)!
Your lecturer: Jim Warren
jim@cs.auckland.ac.nz
x86422
Office: 303S-483
Office hours: by arrangement (try email first, and well start an FAQ
for assignment 2)
These 4 weeks will provide you skills to create .NET
applications in C# and to connect them to an underlying
database
Theres a lab sheet for each week to walk through programming
methods
The tutor will also reinforce the topics from lecture

2 COMPSCI 280 Handout 01


Assignment 2
Create a .NET C# console application
Does database connection, query and update from C#
Includes interpretation and validation of user input
Assignment spec on course website
Due noon Friday on week 8 (25th September)
Worth 5% of course mark

Do the first two .NET/C# labsheets and then get into the
assignment before the break!

3 COMPSCI 280 Handout 01


Todays learning objectives
To be introduced to the .NET framework, including Visual
Studio and C#
To be able to describe characteristics of the Common
Language Runtime
To be able to describe the general characteristics of some
important project templates
Console application
Windows Forms application
ASP MVC Web application

(Well, well just get a glance at these today, but well learn them in
more depth as we go)
4 COMPSCI 280 Handout 01
Visual Studio (VS)
For Assignment 2, we will use Visual Studio to do our application
programming
What is Visual Studio?
Visual Studio is an example of an "Integrated Development Environment" (IDE)
Think of an IDE as an application that combines code editor, compiler,
debugging and other tools that make the design, maintenance, and
documentation of large projects easier
Why an IDE?
Maybe youve had the experience of how Java projects consist of multiple files
for different classes
This is characteristic for large projects
In MVC applications well see that we have many types of files (for M, V, and
C, and various aspects of the website template, system configuration and
helper functions)
VS lets us manage these features and content in a convenient way
5 COMPSCI 280 Handout 01
Visual Studio and C#
Helpful background reading
Visual Studio from the Microsoft Developer Network (MSDN)
https://msdn.microsoft.com/en-
us/library/dd831853(v=vs.120).aspx (particularly note the Visual
Studio IDE User Guide and the Application Development in
Visual Studio links).
C# introduction
http://msdn.microsoft.com/en-us/library/aa645597(v=vs.71).aspx
VS supports multiple languages (C#, C++,Visual Basic, J#) in the
one IDE
All with nearly identical functionality and performance because the use a
common core
VS produces many types of applications
It can also integrate with Microsoft Office applications (Word,
6
Excel, etc.) COMPSCI 280 Handout 01
.NET Languages
All Visual Studio .NET languages are object-oriented
True inheritance and polymorphism (ability to redefine methods for derived
classes) are supported
No matter the language, all programs have a similar structure
Note that if you've done some kind of BASIC (e.g.VB 6) in the past - the
language has changed considerably!
C# (C-sharp) is relatively a new language
With syntax similar to C++, but also borrowing a lot of ideas from Java
Visual J# is also a new language
with syntax similar to Java
File structure is similar for all languages
Files are grouped into projects
All programs compiled into Common Intermediate Language (CIL)
Also known as Microsoft Intermediate Language (MSIL)
7 COMPSCI 280 Handout 01
The .NET Framework
The .NET Framework define the rules for language interoperability
and how an application is compiled into executable code.
It is also responsible for managing the execution of an application
created in any VS .NET language.
The .NET Framework has two main components: the common
language runtime (CLR) and the .NET Framework class library.
CLR
Manages memory, thread execution, code execution, code safety
verification, compilation, and other system services
Memory allocation, starting up and stopping processes
The .NET Framework class library
Provides developers with a unified, object-oriented, hierarchical and
extensible set of class libraries (application programmer interfaces, APIs)

8 COMPSCI 280 Handout 01


Execution Management
The managed execution process includes the following steps:
Choosing a compiler
Compiling, code -> CIL/MSIL
Compiling translates the source code into CIL and generates the required metadata (this
package is an assembly (e.g. a DLL is an assembly)
The format is similar to assembly language but is hardware independent
Compiling, CIL -> native code
A just-in-time (JIT) compiler translates the assembly into native code (or runs it in a virtual
machine)
Conceptually, the process is similar to the Java Virtual Machine
Running code
The CLR provides the infrastructure that enables managed execution to take place as well as
a variety of services that can be used during execution.

Compiling Running Engine


EXE/DLL JIT Native Execution
Source
Language Specific (CIL and Compiler Code
code
Compiler metadata)
9 COMPSCI 280 Handout 01
Garbage Collection
The CLR performs memory management
It manages the allocation and release of memory for an application
Automatic memory management can eliminate common problems,
such as forgetting to free an object and causing a memory leak, (common problems in C
and C++ that lack garbage collection!) or
attempting to access memory for an object that has already been freed.
A contiguous area of memory allocated to a process is called the managed
heap
Reference types are allocated from the managed heap
The CLR reclaims memory using the Garbage Collector (GC)
The GC examines variables to reclaim unused memory
It looks for memory without a corresponding variable (root)

10 COMPSCI 280 Handout 01


Namespace
Physical assemblies are organized into logical components called
namespaces
Namespaces are organized into a hierarchy
Microsoft has divided VS .NET into two primary namespaces:
The System namespace contains components developed by the .NET team
The Microsoft namespace contains components developed by Microsoft
but outside of the .NET development team
Common Namespaces:
The System namespace contains fundamental classes
System.Data namespace contains classes supplying data access capabilities

As compared to e.g. Microsoft.Media.AdaptiveStreaming Namespace (well


mostly use parts of the System namespace)

Youll create namespaces for your own content (e.g. the data model in your
MVC application)

11 COMPSCI 280 Handout 01


Creating a Console Application with VS
Open Visual Studio
To create a new project called HelloWorldApp
Choose File->New Project
Select the project type: Visual C#
Select the project template: Console Application
Enter a name, Select a save Location and enter solution Name
Select Create directory for solution
Click OK a program skeleton with a Main method that appears in the editor
Insert the following code: Console.WriteLine("Hello World");
Console.ReadLine();
Note:
The Main method is the entry point of your program, where the program control starts and
ends
Insert Console.ReadLine() to the Main method which causes the program to pause until
ENTER is pressed
To run your application
Press F5 to run the application, or
Click the Start button (with the green triangle [play]
icon)

12 COMPSCI 280 Handout 03


Creating a Windows Forms application
This type of project starts with a blank form
You can drag and drop useful components onto the form from the
Toolbox (available under the View menu)
Use the Properties
window to edit
attributes of the selected
control
Double-click a control to
add code into its event
handler
E.g.
MessageBox.Show("
Hello, world!");
13 COMPSCI 280 Handout 01
The Model-View-Controller approach
MVC is an architectural pattern
Well, its architectural when you make a project with directories for the 3
areas of concern; conceptually, its a design pattern
Separates responsibilities in the application
Model the data (including the connection and mapping to the DBMS) and its
integrity constraints (e.g. legal values of variables in terms
of the domain logic)
View the rendering. What it looks like to the user
and the detail of how they interact with the application
Controller Handles and responds to user
interaction. Uses the model and selects the
next view to offer the user.

See http://www.asp.net/mvc/tutorials/older-versions/overview/asp-net-mvc-overview
14 COMPSCI 280 Handout 01
An MVC Project in VS
Open VS
File/New Project select Visual C# -> Web ->
ASP .NET Web Application and the MVC
template
Give it a name and location
Press OK and listen to the hard drive grind
Solution Explorer (righthand side of screen in
IDE) produces folders for the Controllers,
Models and Views (alphabetical order)
The default template includes account management
(login, new user) MVC elements

15 COMPSCI 280 Handout 01


MVC application from the template

Runs at localhost served up by the


built-in IIS Express local Web server

16 COMPSCI 280 Handout 01


The using System;
Controller using
using
System.Collections.Generic;
System.Linq;
using System.Web;
The controller has a using System.Web.Mvc;
method of type namespace WebApplication1.Controllers
ActionResult for each {
public class HomeController : Controller
webpage in the solution {
public ActionResult Index()
This is run when the {
application serves up return View();
}
that page
public ActionResult About()
The ViewBag object is {
dynamic; shortcut for ViewBag.Message = "Your
application description page.";
tossing data to the View return View();
}
C# moment: note the :
operator to indicate public ActionResult Contact()
{
deriving a child class ViewBag.Message = "Your contact
from a base class page.";
return View();
}
}
17 } COMPSCI 280 Handout 01
The
@{
View }
ViewBag.Title = "Home Page";

One .cshtml (C# HTML) <div class="jumbotron">


<h1>ASP.NET</h1>
file for each page of the <p class="lead">ASP.NET is a free web
solution framework for building great Web sites and
Web applications using HTML, CSS and
Here we have the HTML JavaScript.</p>
for what the user sees <p><a href="http://asp.net" class="btn
btn-primary btn-lg">Learn more
on the index / home &raquo;</a></p>
page </div>

But its not just HTML ...

The @ indicates Razor Syntax markup that is converted at run-time into HTML
Can be a code block (essentially C# syntax inside curly braces)
Or can be an expression (e.g. <title>@ViewBag.Title</title>)

18 COMPSCI 280 Handout 01


Conclusion
.NET is a framework for creating applications featuring
Common language run-time (CLR)
.NET Framework class library
The CLR provides execution management
Just-in-time compiling
Memory management (via garbage collection)
Visual Studio (VS) is an integrated development environment (IDE)
for .NET
Allows you develop in any of several languages, including VB and C#
VS provides a number of application templates
Can create terminal, Windows or Web applications
Next well get into C# as a language

19 COMPSCI 280 Handout 01

Вам также может понравиться