1.03k likes | 1.42k Vues
.NET Fundamentals. Week 1 November 6, 2003. Introduction. Chip Schopp www.pondviewsoftware.com chipschopp@comcast.net (978) 779-5126. Class Schedule – November 6, 2003. Introductions and other beginning stuff … Review Class Syllabus / Class Goals Class Dates Introduction to .NET
E N D
.NET Fundamentals Week 1 November 6, 2003
Introduction • Chip Schopp • www.pondviewsoftware.com • chipschopp@comcast.net • (978) 779-5126
Class Schedule – November 6, 2003 • Introductions and other beginning stuff… • Review Class Syllabus / Class Goals • Class Dates • Introduction to .NET • Introduction to C# • Class Exercise(s) • Homework Assignment
Text Books • Applied .NET Framework Programming by Jeffrey Richter • Programming C# by Jessie Liberty
Grades • 5 take-home assignments (75%) • Final Exam (part of last class) (25%)
Prerequisites Fundamental of Programming (CT100) or by permission of the instructor.
Class Goals • Provide an overview of the .NET Architecture with Major Components • Programming Languages • ADO.NET • ASP.NET • Web Services • XML Integration
Class Goals Understand the .NET Frameworks as an Object Oriented Strongly Typed Computing Environment
Class Goals • Work with various .NET Framework components • Common Language Runtime (CLR) • .NET Framework Class Library (FCL) • Assemblies • Strong Names • The Global Assembly Cache (GAC) • Using the GACUTIL
Class Goals Introduction to the C# Programming Language
Class Dates • Class Dates ( 6, 7, or 8 classes ?) • November 6, 13, 20 – December 4, 11, 18 • November 27, Thanksgiving, no class • Other possible dates: • Monday November 24th • Monday December 1st • Monday December 8th or Tuesday December 9th • Monday December 15th or Tuesday December 16th • Or ?
Effective Learning • First is Doing • Class exercises • Coaching • Helping each other • Homework • Second is Discussing • Class discussions • Asking questions • Sharing ideas and information • Last is Listening
Learning Environment • Learn something Write some code • Homework Assignments • Write some code Programming is Fun!
Time to Address Open Questions • Begin each class with a time for questions • Questions left open from previous classes • Questions emailed to me during the week • Questions triggered by the homework • Or other ???
Your introductions • Programming background • Operating systems, languages • Any exposure to .NET ? Other courses ? • What do you expect to get out of this course ?
Please email me the following… • Full Name, Nick Name, Student ID # • Home Phone / Work Phone
Email Address (s) [email gives me one] • Your background in computing/programming • Any experience with .NET, other courses, ? • Your objective or goals for this course • Any material you have a special interest in covering? • Any issues or questions that you have? • Additional dates you can attend classes on.
What Is the Microsoft .NET Framework? The Microsoft® .NET Framework is an important new component of the Microsoft Windows® family of operating systems. It is the foundation of the next generation of Windows-based applications that are easier to build, deploy, and integrate with other networked systems.
The .NET Initiative “To create rich applications…, businesses must offer a programmatic interface to their business logic services … [which] must be callable remotely using a network like the Internet. Simply stated, the .NET initiative is about connecting information, people and devices” - Jeff Richter
What Is the Microsoft .NET Framework? Most consumers will never notice that the .NET Framework is running on their Pocket PC, smartphone, or desktop computer. But they may appreciate the reliability, ease of use, and ability to connect to other systems that the .NET Framework helps bring to computers.
What Is the Microsoft .NET Framework? The .NET Framework helps software developers and systems administrators more easily build and maintain systems with improvements toward performance, security, and reliability. Here's how.
A New Approach to Building Windows Software The .NET Framework simplifies Windows software development. It provides developers with a single approach to build both desktop applications—sometimes called smart client applications—and Web-based applications. It also enables developers to use the same tools and skills to develop software for a variety of systems ranging from handheld smartphones to large server installations.
A New Approach to Building Windows Software Software built on the .NET Framework can be easier to deploy and maintain than conventional software. Applications can be designed to automatically upgrade themselves to the latest version. The .NET Framework can also minimize conflicts between applications by helping incompatible software components coexist.
Benefits of the .NET Framework • Helps IT professionals better integrate existing systems with its native support for Web services. • Assists with the deployment of software to both users and Web servers. • Facilitates the development of software with improved reliability, scalability, performance, and security.
Helps developers be more productive by: • Making it easier for them to reuse existing code. • Enabling them to more easily integrate components written in any of the more than 20 supported programming languages. • Helping them more easily build software for a wide range of devices using same skills and tools.
The Development Environment – Visual Studio.NET • Finally , Visual Studio truly becomes an Integrated Development Environment, with multi-language development. • Runs on Windows 2000, NT, XP and the .NET server family. • Support for building 32 and 64 bit applications • Usual gamut of wizards, debuggers, linkers… • Plenty of good documentation • Free .NET Framework SDK – compilers, tools, documentation
The Development/Runtime platform – the .NET Framework • The new runtime environment in .NET • Provides a set of base classes for developers to build on • A unified type system to allow language inter-operability • This course deals with the fundamentals of programming this framework
To summarize, .NET is… • An OS platform • The .NET Enterprise Servers.NET building block services • .NET Device Software • The Development Environment – Visual Studio.NET • The Development/Runtime platform – the .NET Framework
The .NET Framework • Think of what device drivers do in terms of abstracting access by an application Application Windows Scanner Driver Mouse Driver
The .NET Framework • If we abstract the underlying OS in the same way… Application .NET Framework Windows XP FreeBSD UNIX Windows 2000
The .NET Framework • The .NET Framework introduces a layer of abstraction (and obviously, some overhead) to the OS as we currently know it. • Is this reason enough to move to it ? Let’s look at the state of Windows development without .NET…
The current state of affairs • Win32/C programming • Fairly low-level, not object oriented, interoperability with other languages is hard, memory leaks an issue. • C++/MFC programming • Large language, complex idioms, prone to abuse, interoperability with other languages and other C++ implementations still hard, memory leaks still an issue • Visual Basic programming • Object aware, but not object oriented. • Interop with other languages possible, but ugly.
The current state of affairs • COM programming • Allows you cross language integration at the binary level. • Interface based programming encouraged • Fairly complex to understand and set up • Deployment is registry based, fairly fragile. • Distributed COM was notoriously hard to set up because of the security issues involved • A Microsoft-only solution • Java programming • Great language, but no cross language integration. • Interpreted byte-code did have performance issues
The current state of affairs • Into the mix just discussed, throw in JavaScript, ASP, HTML, DHTML • Everything we just talked about has it’s own runtime engine/environment, it’s own set of libraries and it’s own set of development tools. • In a highly connected world, our solutions need to span languages, machines and network boundaries.
What the .NET Framework gives us • Consistent programming model • A simple OO programming model • Application component isolation • Newer versions can be installed safely • Goes a long way in helping improve DLL Hell • Simplified installation model • Xcopy, no registry entries • Uninstalls involve just deleting files/folders • Shared components easier to install than COM components
What the .NET Framework gives us • Multi-platform support • The fact that the OS is abstracted away, with code compiled to an intermediate language makes this possible • Cross language integration • This is in contrast with COM’s cross-language interoperation. Types can be used between languages. • This also makes cross language debugging possible. • Automatic memory management • Reduces the incidence of memory leaks . The Visual Basic runtime has done this for sometime, but it is now available to all languages
What the .NET Framework gives us • Code verifiability • Rich type information gives us the ability to check that code is operating safely • e.g. Buffer overflows prevented. • Consistent error handling mechanism • Exceptions used instead of error codes and HRESULTS • Exceptions have to be handled – cannot ignore them • Code security • Signing allows the runtime to verify that code has not been tampered with. • Code access security associates permissions with code.
Basic Components of the .NET Framework The .NET Framework consists of two main parts: • common language runtime • .NET Framework class library
The heart of the Framework • The most important elements of the franework are: • The Common Language Runtime (CLR) • The Framework Class Libraries (FCL) WinForms ASP.NET Framework Class Library Base Data XML … Common Language Runtime OS Services
Common Language Runtime • Provides the common services for .NET Framework applications. • Programs can be written for the common language runtime in just about every language, including C, C++, C#, and Microsoft Visual Basic®, as well as some older languages such as Fortran. • The runtime simplifies programming by assisting with many mundane tasks of writing code, including memory management—which can be a big generator of bugs—security management, and error handling.
Common Language Runtime (CLR) • Locates, loads and runs code written in runtime-aware languages. • Handles object creation, memory management, making method calls, enforces code security and provides a process abstraction. • Code that targets the CLR is called managed code, while code that uses the native OS services directly is called unmanaged code. • Languages that can produce managed code (or .NET programming languages) • C#, VB.NET, VC++ with managed extensions, Fujitsu COBOL.NET, Jscript.NET, Eiffel, Python, Perl…
Managed Module A Managed Module is a standard windows portable executable (PE) file that requires the CLR to execute.
Managed Code Code executed and managed by the Microsoft® .NET Framework, specifically by the .NET Framework's common language runtime. Managed code must supply the information necessary for the common language runtime to provide services such as memory management, cross-language integration, code access security, and automatic lifetime control of objects. All code based on Microsoft Intermediate Language executes as managed code.
.NET Framework Class Library The library includes prepackaged sets of functionality that developers can use to more rapidly extend the capabilities of their own software. The library includes three key components: • oASP.NET to help build Web applications and Web services. • oWindows Forms to facilitate smart client user interface development. • oADO.NET to help connect applications to databases.