.NET Overview. David Smith. Today s s Topics. Why am I here? A tool. Microsoft s s Vision for.net



Similar documents
.NET Overview. Andreas Schabus Academic Relations Microsoft Österreich GmbH

Programming with the Microsoft.NET Framework Using Microsoft Visual Studio 2005 (VB)

.NET and J2EE Intro to Software Engineering

Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS

Application Development,.NET

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT

Developing Database Business Applications using VB.NET

Objectif. Participant. Prérequis. Remarque. Programme. C# 3.0 Programming in the.net Framework. 1. Introduction to the.

Course MS10975A Introduction to Programming. Length: 5 Days

ASP &.NET. Microsoft's Solution for Dynamic Web Development. Mohammad Ali Choudhry Milad Armeen Husain Zeerapurwala Campbell Ma Seul Kee Yoon

Visual Basic. murach's TRAINING & REFERENCE

Chapter 13 Computer Programs and Programming Languages. Discovering Computers Your Interactive Guide to the Digital World

Programming in C# with Microsoft Visual Studio 2010

Lecture 1: Introduction

CrossPlatform ASP.NET with Mono. Daniel López Ridruejo

C#5.0 IN A NUTSHELL. Joseph O'REILLY. Albahari and Ben Albahari. Fifth Edition. Tokyo. Sebastopol. Beijing. Cambridge. Koln.

WHITE PAPER. TimeScape.NET. Increasing development productivity with TimeScape, Microsoft.NET and web services TIMESCAPE ENTERPRISE SOLUTIONS

Course Name: ADVANCE COURSE IN SOFTWARE DEVELOPMENT (Specialization:.Net Technologies)

An Easier Way for Cross-Platform Data Acquisition Application Development

Programming. Languages & Frameworks. Hans- Pe(er Halvorsen, M.Sc. h(p://home.hit.no/~hansha/?page=sodware_development

Computer Science. 232 Computer Science. Degrees and Certificates Awarded. A.S. Degree Requirements. Program Student Outcomes. Department Offices

Introducing Micro Focus Net Express to Develop and Extend COBOL Applications within.net White Paper

IBM WebSphere ILOG Rules for.net

Introduction to Visual Studio and C#

Creating Form Rendering ASP.NET Applications

2. Advance Certificate Course in Information Technology

(ENTD361 is highly recommended before taking this course)

Evolution of the Major Programming Languages

CSCI 3136 Principles of Programming Languages

Android Application Development Course Program

AgilePoint. Version: 2.5. Ascentn Corporation

INTERNET PROGRAMMING AND DEVELOPMENT AEC LEA.BN Course Descriptions & Outcome Competency

CATALOG OF CLASSES IT and Technical Courses

Web Services with ASP.NET. Asst. Prof. Dr. Kanda Saikaew Department of Computer Engineering Khon Kaen University

Fundamentals of Java Programming

Upgrading a Visual Basic Application to.net:

SOA & Web Services Development Survey

Computer Science Course Descriptions Page 1

Visual Basic.NET Certificate Program

High-Level Programming Languages. Nell Dale & John Lewis (adaptation by Michael Goldwasser)

Service Oriented Architectures

PG DAC. Syllabus. Content. Eligibility Criteria


MA-WA1920: Enterprise iphone and ipad Programming

Developing a Web Server Platform with SAPI Support for AJAX RPC using JSON

Course Descriptions. preparation.

Catálogo de cursos plataforma elearning Microsoft Imagine Academy: Microsoft SQL Server y Visual Studio

Quartz.Net Scheduler in Depth

Crash Course in Java

ANDROID DEVELOPER RESUME USA

The Microsoft Way: COM, OLE/ActiveX, COM+ and.net CLR. Chapter 15

Developing a Three Tier Web Application Using ASP.NET and Open Source Object-Oriented Database DB4Objects

HTML5. Turn this page to see Quick Guide of CTTC

Getting Started with the Internet Communications Engine

Microsoft Certified Applications Developer (MCAD) exams

Chapter 1. Dr. Chris Irwin Davis Phone: (972) Office: ECSS CS-4337 Organization of Programming Languages

Glossary of Object Oriented Terms

A Comparison of Web Development Technologies: WebObjects vs. ASP.NET

1/20/2016 INTRODUCTION

Introducing the.net Framework 4.0

Programming Language Inter-conversion

Building Scalable Applications Using Microsoft Technologies

Compiling Object Oriented Languages. What is an Object-Oriented Programming Language? Implementation: Dynamic Binding

Computer Information Systems (CIS)

INTRODUCTION TO C# 0 C# is a multi-paradigm programming language which is based on objectoriented and component-oriented programming disciplines.

COMMON All Day Lab 10/16/2007 Hands on VB.net and ASP.Net for iseries Developers

Computer Science. Computer Science 207. Degrees and Certificates Awarded. A.S. Computer Science Degree Requirements. Program Student Outcomes

The best way to get Microsoft Visual Studio 2005 is by purchasing or renewing an MSDN Subscription today.

Transactions traditional rollback and recovery for component-based applications in the event of system failure.

Integrating SharePoint Sites within WebSphere Portal

Hijacking Arbitrary.NET Application Control Flow. Topher Timzen

Transition your MCPD Web Developer Skills to MCPD ASP.NET Developer 3.5 (VB)

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming

White Paper: 5GL RAD Development

Chapter 2: Remote Procedure Call (RPC)

ASP.NET. Web Programming. Telemark University College Department of Electrical Engineering, Information Technology and Cybernetics

Synchronizing databases

Advanced Web Application Development using Microsoft ASP.NET

C#.NET Advanced. C#.NET Advanced. Prerequisites

Smart Client Deployment with ClickOnce. Brian Noyes IDesign, Inc. (

Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.

Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages

2311A: Advanced Web Application Development using Microsoft ASP.NET Course 2311A Three days Instructor-led

CSCI 253. Object Oriented Programming (OOP) Overview. George Blankenship 1. Object Oriented Design: Java Review OOP George Blankenship.

Project Server hardware and software requirements

Transcription:

.NET Overview David Smith Microsoft Student Ambassador CS Major Michigan State University Today s s Topics Why I m I m here. Exciting Demo IssueVision What is.net? Why learn.net? Look into the Demo Old vs. New.NET Base Class Libraries ASP.NET vs. C#.NET Garbage Collection Visual Studio.NET User Group Why am I here? For you What is.net? A tool It s s a very exciting time to be a developer Very smart people here at MSU Microsoft.NET is a set of software technologies for connecting information, people, systems, and devices Based on the.net Framework Microsoft s s Vision for.net Microsoft s s Vision for.net OO Class-based Multi-language language Programming Platform Rapid Application Development (RAD) Targeting: Multi-processor Servers to PDAs Web-based based Computing (XML) Virtualization of Servers/TS Common Platform for C#, VB, ASP, CE, XML, Visual C++, J#, Cobol/Pascal from 1 Interface! ( Visual Studio.NET ) 1

Why learn.net? Demo Focus A Look into IssueVision It makes your life easier Reduces development time More powerful applications The future of software evolution Service Oriented Architecture Valuable skill Huge base class framework to build off of Smart Clients Versioning User Interfaces Web Services Authentication VB.NET Framework C++ C# Perl Common Language Specification ASP.NET Web Forms Web Services Mobile Internet Toolkit ADO.NET and XML.NET Framework (Base Class Library) Common Language Runtime Operating System Python Windows Forms Visual Studio.NET Current List of Language Compilers ADA APL Basic (Visual Basic) C# C C++ Java Language COBOL Component Pascal (Queensland Univ of Tech) ECMAScript (JScript) Eiffel (Monash( Monash University) Haskell (Utrecht University) lcc (MS Research, Redmond) Mondrian (Utrecht) ML (MS Research Cambridge) Mercury (Melbourne U.) Oberon (Zurich University) Oz (Univ( Univ of Saarlandes) Perl Python Scheme (NW Univ.) SmallTalk How is this possible? CLR- The Heart of.net!.net has 2 main components 1. Common Language Runtime ( CLR ) Microsoft Intermediate Language 2..NET Framework class library Common Language Runtime (CLR) Execution Engine for.net Framework Between the Binary.exe and the OS Manages System Resources Threads Memory Security 2

.NET Framework Base classes and libraries Very large base class framework VB C++ C# Perl Common Language Specification ASP.NET Web Forms Web Services Mobile Internet Toolkit ADO.NET and XML.NET Framework (Base Class Library) Common Language Runtime Python Windows Forms Visual Studio.NET System - Int32, String, Conversions, Basic Value Types System.IO - Files, Streams System.Collections - Arrays, Bit Arrays Stacks, Queues, System.Data - ADO.NET, SQL, XML, OLEDB System.EnterpriseServices - MSMQ System.Drawing - GDI+ (Graphic Device Interface ) Operating System System.Reflection - Read object information at runtime System.Runtime - Remoting,, Reflection C#.NET vs ASP.NET Demo C#.NET vs ASP.NET Demo Watch the similarities in code What makes this possible? The.NET base classes Web Services with XML Old vs. New Demo Web Services allow extensible and flexible communication between services Promotes Service Oriented Architecture (SOA) The next evolution of OOA 3

Old vs. New Demo Garbage Collection Applying more power tools to class work and learning exercises. No more pointers! Teach students skills that will apply to real world disciplines Less semantics, more architecting More powerful tools allow developers to architect more realistic projects and libraries Do what you love - build Analysis of large software design projects, less semantics of language.visual Studio Conclusions and Resources Most powerful IDE to enable developer productivity MSDN Academic Alliance http://msdn.cse.msu.edu IntelliSense Made for developers Word vs. Notepad Visual Studio 2005 Microsoft Developers Network AA Visual Studio.NET, XP, Server 2003, Visio, Project, SQL Server, MELL, Exchange INETA International.NET Association http://www.ineta.org www.ineta.org/ Programming Competitions.NET User Group The Imagine Cup http://www.imaginecup.com $25,000 in prizes http://cplan.cse.msu.edu/weblogs/ Full descriptions and documentations will be published Goals: 1. Provide learning tools and resources for students interested in any MS software/technologies.. ( Not a class ) 2. Compile a resource library of books on latest.net technologies. 3. Get Guest speakers from Microsoft and INETA 4. Hold tech talks about latest software a group learning environment. 5. Access to Microsoft s s exclusive live web cast tutorial sessions on latest deployed technology. 6. Get an opportunity to interact with other groups and experts across the nation People Networking. 7. Create, and apply the skills we ve learned to new projects 4

Questions for me? Ask now! If you re interested in the.net User Group, or learning more about.net Email: smith458@msu.edu Stay after, and join the conversation Change the world. Change the way people think. ALP Session #2 David Smith Microsoft Student Ambassador Computer Science Major Michigan State University Today s s Topics Classes: Why? Classes Declarations Constructors Destructors and Disposal Methods Properties Polymorphism Inheritance Interfaces Abstract Classes Encapsulation Consolidation Reuse code Make changes once We should only have to solve a problem once 5

Classes: How? Constructors Keywords: Demo Code Public Accessible to everyone Private Only accessible to the host object Internal Accessible to anyone in the assembly Protected Accessible to the host class and classes that inherit from the class Destructors IDisposable Demo Code Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. IDisposable.Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. The GC is NOT predictable!! The GC is NOT predictable!! Finalizer: : called by the Garbage Collector ~Class1() { // user code to handle destruction Dispose(false); } Keep in mind: When Dispose(false) ) is called on an object, explicitly by the programmer, triggered by the Finalize()/~Destructor in a non-deterministic manner, the managed objects inside of class may have been destructed already, so we can not reference them Dispose ( bool disposing ) { if (!disposed) { // this is being called by the user // handle managed and unmanaged resources if ( disposing == true) { foreach ( IDisposable obj in this.coll) obj.dispose(); } // Dispose was never called on this explicitly, only now by the GC // disposing == false; this is being called by the GC // We don t t know if objects can be referenced anymore! // dispose of unmanaged objects ONLY else { this.unmanagedobject.close(); } disposed = true; // only enter this code loop once ever. } } 6

Classes: Adding Functionality Members Members Public, private, protected, internal variables contained within a class Methods Functions, actions Properties Useful for containing controlled, and often more robust, explicit access to members Demo code Methods Methods Console.WriteLine() WriteLine is the method Demo code Methods are verbs An action that a class can take A function that a programmer can invoke to process something Properties Properties Properties allow dynamic control over data access within a class Demo Code 7

Inheritance Polymorphism Code reuse Demo Code Demo Code Interfaces Interfaces Public, published contract Demo Code Often associated with policy No implementation code Abstract Classes Conclusions and Resources Implementation + Inheritance Students and faculty: MSDN Academic Alliance http://msdn.cse.msu.edu Demo Code http://google.com - Your best resource http://cplan.cse.msu.edu The MSU Assoc. of Computing and Machinery Blog 8

Questions for me? Ask now! If you re interested in the.net User Group, or learning more about.net Email: smith458@msu.edu Stay after, and join the conversation Change the world. Change the way people think. ALP Session #3 David Smith Microsoft Student Ambassador Computer Science Major Michigan State University Today s s Topics Networking/Remoting/Events Networking / Remoting / Events Demo Delegates Events Asynchronous Callbacks Multithreading Musiciscrazy Uses events to handle synchronization between clients: Publisher Subscriber model Uses ASP.NET Uses Remoting to communicate between clients and server 9

Networking/Remoting/Events Delegates Demo A delegate is a managed pointer to a function A delegate matches a function signature // Declare delegate name and signature public delegate void StringLogging(string msg); // Declare a pointer to a function StringLogging stringhandler; Delegates Problem solving with Events Demo 0 Scenario: Several objects would like to use some sort of notification to coordinate their actions. Problem: How can messaging be used to transmit events from one application to another? Events Events Events are typically the defining concept of object oriented design The Object-Oriented Oriented Programming model both supports and relies upon events Patterns that use Events Event driven consumer Events generally follow the publisher- subscriber pattern A publisher defines an event, and anybody that wants to know about that event can subscribe 10

Events Events Patterns that use Events Publisher-Subscriber FakeEvents Demo This is how it used to be Events Events RealEvents Demo This is how it is now Demo of events with Interfaces Establish public contracts that classes / webservices / programs use as a communication policy Multithreading Multithreading Run multiple threads at once to allow concurrent execution of code System.Threading.Thread e.g. Run a GUI in the foreground and an indexing thread in the background 11

Multithreading Asynchronous Callbacks SimpleThreading Demo BeginInvoke() EndInvoke() Conclusions and Resources Students and faculty: MSDN Academic Alliance http://msdn.cse.msu.edu Questions for me? Ask now! http://google.com - Your best resource Email: smith458@msu.edu http://cplan.cse.msu.edu The MSU Assoc. of Computing and Machinery Blog If you re interested in the.net User Group, or learning more about.net Stay after, and join the conversation Change the world. Change the way people think. 12

ALP Session #4 David Smith Guidelines Do what you can, the best that you can, and wait for the results. Actions are all that matter Microsoft Student Ambassador Computer Science Major Michigan State University Today s s Topics Generics: Why? Generics &.NET 2.0 WebServices Remoting Visual Studio 2005 SQL Server 2005 Speed we save on not having to convert types at runtime Explicitness at design-time We know that we ll be using a certain type let s s tell the code that Runtime safety checks can be turned into design-time safety checks Generics: How? Generics class < type > Demo Collection<string> 13

Webservices: : Why Webservices: : How The next abstraction that is needed in order to make design possible Historically, this all makes sense ASM -> > C -> > C++ > Java/C# -> > Services -> >? Service based abstraction The four tenets Boundaries are explicit Services are autonomous Services share schema and contract, not class Compatibility is based upon policy Service Oriented Architecture WebServices: How? Remoting: Why? Musiciscrazy Demo Remoting is a means of communication through instantiation of an object on a server Remoting: How? Visual Studio 2005 System.Runtime.Remoting Design Time improvements System.Runtime.Remoting. Intellisense improvements 14

SQL Server 2005 Conclusions and Resources Fast Students and faculty: MSDN Academic Alliance http://msdn.cse.msu.edu Now Supports XML as a native type http://google.com - Your best resource Integrates well with VS 2005 http://cplan.cse.msu.edu The MSU Assoc. of Computing and Machinery Blog Questions for me? Ask now! If you re interested in the.net User Group, or learning more about.net Email: smith458@msu.edu Stay after, and join the conversation Change the world. Change the way people think. 15