Microsoft.NET Framework Кратък обзор Светлин Наков Консултант по разработка на софтуер Софийски УниверситетСв. Климент Охридски Хоноруван. -

Содержание

Слайд 2

Microsoft .NET Framework Кратък обзор Светлин Наков Консултант по разработка на

Microsoft .NET Framework

Кратък обзор

Светлин Наков

Консултант по разработка на софтуер

Софийски Университет “Св. Климент

Охридски”

http://www.nakov.com

Хоноруван преподавател по компютърни науки и софтуерни технологии

Слайд 3

Визията на Microsoft за .NET ERP & Billing Customer Service Sales

Визията на Microsoft за .NET

ERP & Billing

Customer
Service

Sales

Потребители
На всяко устройство
Навсякъде
По всяко време

XML

Web Услуги Интеграция на бизнес процесите и приложенията

Back Office Хетерогенна инфраструктура от сървъри

Scheduling

Authentication

Notification

Слайд 4

.NET Framework Модел за програмиране за .NET Платформа за изпълнение на

.NET Framework

Модел за програмиране за .NET
Платформа за изпълнение на .NET код

в управлявана среда
Удобна среда за разработка и изпълнение на мрежови приложения и Web услуги
Програмно API и единен framework, независим от езиците за програмиране
Кодът работи на различни платформи (Windows, Linux, FreeBSD, …)
Слайд 5

Сърцето на .NET Framework: FCL & CLR Common Language Runtime Управление

Сърцето на .NET Framework: FCL & CLR

Common Language Runtime
Управление на паметта

(garbage collection)
Интеграция на различни езици
Поддържа множество версии за компонентите (т. нар. assemblies) – няма вече конфликти
Интегрирана сигурност
Framework Class Library
Предоставя основната функционалност за разработка:
ASP.NET, Web Services, ADO.NET, Windows Forms, IO, XML, ...
Слайд 6

.NET Framework Common Language Runtime Operating System Common Language Runtime CLR

.NET Framework Common Language Runtime

Operating System

Common Language Runtime

CLR управлява процеса на

изпълнение на кода
Управлява паметта, конкурентността, ...
Code-based security
Role-based security
Слайд 7

.NET Framework Base Class Library Operating System Common Language Runtime .NET

.NET Framework Base Class Library

Operating System

Common Language Runtime

.NET Framework (Base Class

Library)

Богата обектно-ориентирана библиотека от преизползваеми типове
Колекции, вход-изход, работа със символни низове, …

Слайд 8

.NET Framework Data Access Layer Operating System Common Language Runtime .NET

.NET Framework Data Access Layer

Operating System

Common Language Runtime

.NET Framework (Base Class

Library)

ADO .NET and XML

Достъп до релационни бази данни
Disconnected модел на данните
Работа с XML

Слайд 9

.NET Framework ASP.NET & Windows Forms Operating System Common Language Runtime

.NET Framework ASP.NET & Windows Forms

Operating System

Common Language Runtime

.NET Framework (Base

Class Library)

ADO .NET and XML

ASP .NET
Web Forms Web Services
Mobile Internet Toolkit

Windows
Forms

Потребителски интерфейс за приложенията – Web-базиран, Windows GUI, Web услуги, …

Слайд 10

.NET Framework Programming Languages Operating System Common Language Runtime C++ C#

.NET Framework Programming Languages

Operating System

Common Language Runtime

C++

C#

VB.NET

Perl

J#


Използвате любимия си език!

Слайд 11

.NET Framework Common Language Specification Operating System Common Language Runtime Common Language Specification

.NET Framework Common Language Specification

Operating System

Common Language Runtime

Common Language Specification

Слайд 12

.NET Framework Visual Studio .NET Operating System Common Language Runtime Common

.NET Framework Visual Studio .NET

Operating System

Common Language Runtime

Common Language Specification

C++

C#

VB.NET

Perl

J#


Visual Studio

.NET
Слайд 13

Поддръжка на много езици IL (MSIL or CIL) – Intermediate Language

Поддръжка на много езици

IL (MSIL or CIL) – Intermediate Language
Език от

ниско ниво (машинен език), като асемблер, но обектно-ориентиран
CTS – система от типове, вградена в CLR
Разнообразни типове (int, float, string, …)
И стандартни операции над тези типове
Два вида: Value types и Reference types
CLS – множество от спецификации, които трябва да се спазват от всички езици и библиотеки
Така се осигурява възможността за взаимодействие между различните езици
Слайд 14

Примерна програма на MSIL .method private hidebysig static void Main() cil

Примерна програма на MSIL

.method private hidebysig static void Main() cil managed
{

.entrypoint
// Code size 11 (0xb)
.maxstack 8
IL_0000: ldstr "Hello, world!"
IL_0005: call void [mscorlib]System.Console::WriteLine(string)
IL_000a: ret
} // end of method HelloWorld::Main
Слайд 15

.NET езиците Езици, предоставени от Microsoft C++, C#, J#, VB.NET, JScript

.NET езиците

Езици, предоставени от Microsoft
C++, C#, J#, VB.NET, JScript
Езици от трети

доставчици
Perl, Python, Pascal, APL, COBOL, Eiffel, Haskell, ML, Oberon, Scheme, Smalltalk…
Смесване на използваните езици
Междуезиково наследяване на типове и управление на изключения
Един проект може да съдържа код на различни езици
Интеграцията е вградена, а не сглобена
Няма допълнителни особености или други API за учене
Слайд 16

Езикът C# Смесица между C++, Java и Delphi Компонентно-ориентиранo програмиране Свойства,

Езикът C#

Смесица между C++, Java и Delphi
Компонентно-ориентиранo програмиране
Свойства, методи, събития
Атрибути, XML-базирана

документация
Всичко накуп, без header файлове, IDL и т.н.
Може да се ползва в Web-приложения
Всичко е обект!
Примитивните типове са обекти, напр. 5.ToString() е валидно извикване
Единна система типове = леснота за работа
Добра разширяемост и възможност за преизползване
Слайд 17

Езикът C# – пример using System; class HelloWorld { public static

Езикът C# – пример

using System;
class HelloWorld
{
public static void main()
{
Console.WriteLine(“Hello, world!”);
}
}

Слайд 18

Компилация Изпълнение Нарича се assembly (.EXE или .DLL файл) - Когато

Компилация

Изпълнение

Нарича се assembly
(.EXE или
.DLL файл)

- Когато даден метод се извика за

първи път

Компилация и изпълнение

- Прекомпилация при инсталиране

Слайд 19

VS.NET – Единна среда за разработка – единни умения От Visual

VS.NET – Единна среда за разработка – единни умения

От Visual Studio.NET

можете:
Да пишете код
Да рисувате потребителски интерфейс
Да разглеждате документацията
Да изпълнявате и тествате
Да дебъгвате
Единна среда за всички езици
Единна среда за всички платформи
Единна среда за всички технологии
Слайд 20

Visual Studio .NET

Visual Studio .NET

Слайд 21

.NET Framework Library Base Class Library ADO.NET и XML

.NET Framework Library

Base Class Library

ADO.NET и XML

Слайд 22

.NET Framework – пакети

.NET Framework – пакети

Слайд 23

Пакетите от Base Class Library System Threading Text ServiceProcess Security Resources

Пакетите от Base Class Library

System

Threading

Text

ServiceProcess

Security

Resources

Reflection

Net

IO

Globalization

Diagnostics

Configuration

Collections

Runtime

Serialization

Remoting

InteropServices

Слайд 24

Base Class Library Типове данни, конвертиране, форматиране Колекции: ArrayList, Hashtable, ...

Base Class Library

Типове данни, конвертиране, форматиране
Колекции: ArrayList, Hashtable, ...
Интернационализация: култури, сортиране
I/O:

Бинарни и текстови потоци, файлове, ...
Мрежово програмиране: TCP/IP, HTTP, ...
Reflection: метаданни и създаване на MSIL
Сигурност: Криптография, права за достъп
Текст: Кодирания, регулярни изрази, ...
Remoting и Serialization: отдалечено извикване
Многонишковост и синхронизация
Слайд 25

Пакетите Data и XML

Пакетите Data и XML

Слайд 26

ADO.NET и XML ADO.NET приема всякакви типове данни XML (йерархични), релационни,

ADO.NET и XML

ADO.NET приема всякакви типове данни
XML (йерархични), релационни, ...
Мощно кеширане

в паметта (DataSet)
DataSet може да съдържа различни обекти: таблици, изгледи, релации, constraints, ...
Лек, stateless, disconnected модел
Вградено поддържа релационен и XML достъп
Високоскоростен поточно-ориентиран достъп до данните
Сериозна поддръжка на XML:
W3C DOM, XSL/T, XPath и XSchema
Слайд 27

VS.NET – DataSet редактор

VS.NET – DataSet редактор

Слайд 28

Пакетите от Windows Forms System.Drawing Drawing2D Imaging Printing Text System.Windows.Forms Design ComponentModel

Пакетите от Windows Forms

System.Drawing

Drawing2D

Imaging

Printing

Text

System.Windows.Forms

Design

ComponentModel

Слайд 29

Windows Forms Windows Forms е framework за създаване на приложения с

Windows Forms

Windows Forms е framework за създаване на приложения с прозоречно-базиран

графичен потребителски интерфейс
RAD (Rapid Application Development)
Component-based
Event-driven
Богат набор от контроли
Data-aware компоненти
Поддръжка на печатане
Вградена поддръжка на Unicode
Позволява наследяване на потребителски интерфейс
Слайд 30

VS.NET – Windows Forms редактор

VS.NET – Windows Forms редактор

Слайд 31

Demo 1 Създаване на просто приложение за достъп до база от

Demo 1

Създаване на просто приложение за достъп до база от данни

чрез:
Windows Forms
ADO.NET
MS SQL Server
Visual Studio .NET
Слайд 32

DataSet Database Microsoft SQL Server SqlConnection SqlDataAdapter Fill Update Demo 1 – архитектура Application

DataSet
Database
Microsoft
SQL Server

SqlConnection

SqlDataAdapter

Fill

Update

Demo 1 – архитектура

Application

Слайд 33

Пакетите от ASP.NET System.Web Caching Configuration Services UI SessionState HtmlControls WebControls Description Discovery Security Protocols

Пакетите от ASP.NET

System.Web

Caching

Configuration

Services

UI

SessionState

HtmlControls

WebControls

Description

Discovery

Security

Protocols

Слайд 34

Framework за създаване на Web-базирани приложения и Web-услуги на всеки .NET

Framework за създаване на Web-базирани приложения и Web-услуги на всеки .NET

език
C#, C++, VB.NET, JScript, ...
Поддържа на различни клиенти
DHTML, HTML 3.2, WML, мобилни устройства
ASP.NET Web-приложенията се компилират до assemblies
Кешират се при първо извикване и след това се изпълняват от кеша веднага
Има разделяне на кода от Web-дизайна
Програмистите и дизайнерите могат да работят независимо

ASP.NET

Слайд 35

ASP.NET Богат набор от ASP.NET server контроли Валидация на данните Data-bound

ASP.NET

Богат набор от ASP.NET server контроли
Валидация на данните
Data-bound grids
Event-driven модел за

изпълнение
Отлична поддръжка на Web-услуги
Лесно внедряване (deployment)
Висока надеждност
Висока производителност и скалируемост
Скалируемо управление на информацията за състоянието (session state management)
Слайд 36

VS.NET – Web Forms редактор

VS.NET – Web Forms редактор

Слайд 37

ASP.NET WebMatrix

ASP.NET WebMatrix

Слайд 38

Demo 2 Създаване на просто Web-базирано приложение за достъп до база

Demo 2

Създаване на просто Web-базирано приложение за достъп до база данни

чрез:
ASP.NET (Web Forms)
ADO.NET
MS SQL Server
MS Internet Information Server
Visual Studio .NET
Слайд 39

DataGrid DataSet Database Microsoft SQL Server SqlConnection SqlDataAdapter Fill Update Demo 2 – архитектура Web Application

DataGrid

DataSet
Database
Microsoft
SQL Server

SqlConnection

SqlDataAdapter

Fill

Update

Demo 2 – архитектура

Web Application

Слайд 40

Web-услуги Web-услугите са програмни компоненти, достъпни отдалечено през Web Използват стандартите

Web-услуги

Web-услугите са програмни компоненти, достъпни отдалечено през Web
Използват стандартите HTTP, XML

и SOAP
Имат стандартно описание на езика WSDL
Извикват се с лекота от всеки клиент на всяка платформа
Моделът за изпълнение е “заявка-отговор” –прилича на компонентно-ориентираното програмиране, но работи през Web
ASP.NET – лесен програмен модел за разработка на Web-услуги
Пишем .ASMX файлове с обикновени класове и методи в тях
ASP.NET ги компилира при поискване, генерира им WSDL и създава им тестова страница
Слайд 41

Web Service – пример на C# ParcelTracker.asmx using System; using System.Web.Services;

Web Service – пример на C#

ParcelTracker.asmx

<%@ WebService Language="C#" %>
using System;
using System.Web.Services;
public

class ParcelTrackerWebService
{
[WebMethod]
public string GetOrderStatus(int orderNumber)
{
// Implementation here
// return some_result;
}
}
Слайд 42

Demo 3 Създаване на проста Web-услуга чрез: ASP.NET (Web Services) MS

Demo 3

Създаване на проста Web-услуга чрез:
ASP.NET (Web Services)
MS Internet Information Server
Visual

Studio .NET
Слайд 43

Shared Source CLI (Rotor) Некомерсиална имплементация на CLI, достъпна във вид

Shared Source CLI (Rotor)

Некомерсиална имплементация на CLI, достъпна във вид на

сорс-код. Съдържа:
Среда за изпълнение на MSIL код (managed execution environment) с JIT-компилатор
Компилатор за езиците C# и JScript
Инструменти за разработка – ilasm, ildasm, cordbg, metainfo, …
Реализирана изцяло на C++ и C#
Компилира се MS Visual Studio .NET
Достъпна за научни изследвания, образователна и учебна дейност
Работи под FreeBSD, Windows и Mac OS
Слайд 44

.NET Framework – ресурси Web-сайтове: Официален сайт на .NET Framework –

.NET Framework – ресурси

Web-сайтове:
Официален сайт на .NET Framework – http://msdn.microsoft.com/netframework/
Microsoft .NET

Framework Community – http://www.gotdotnet.com/
ASP.NET – http://www.asp.net/
.NET Windows Forms – http://www.windowsforms.net/
O’Reilly .NET Community Site – http://www.ondotnet.com/
Microsoft Patterns and Practices – http://msdn.microsoft.com/practices/
Code Project – http://www.codeproject.net/
Слайд 45

.NET Framework – Resources Web-сайтове: Mono – Open Source .NET Framework

.NET Framework – Resources

Web-сайтове:
Mono – Open Source .NET Framework – http://www.go-mono.org/
Rotor

– MS Shared Source .NET CLI – http://msdn.microsoft.com/net/sscli/
Курс по .NET Framework в Софийски Университет – http://www.nakov.com/dotnet/
Нюзгрупи:
Нюзгрупата на .NET Framework – news://msnews.microsoft.com/microsoft.public.dotnet.framework
Българската нюзгрупа на Microsoft –news://msnews.microsoft.com/microsoft.public.bg.developer
Слайд 46

Въпроси?

Въпроси?

Слайд 47

Моите въпроси към вас Можем ли да разработваме .NET Framework приложения,

Моите въпроси към вас

Можем ли да разработваме .NET Framework приложения, който

да се изпълняват върху мобилни устройства (мобилни телефони, PDA, handheld, …)?
Отговор:
Microsoft .NET Compact Framework
Той е стандартна част от Microsoft Visual Studio .NET 2003
Слайд 48

Как можем да прекомпилираме предварително .NET assemblies за да ускорим изпълнението

Как можем да прекомпилираме предварително .NET assemblies за да ускорим изпълнението

им? Има ли стандартен инструмент за това?
Отговор:
Чрез програмката ngen.exe
Тя е стандартна част от .NET Framework

Моите въпроси към вас

Слайд 49

MSIL е изключително лесен за декомпилиране. Как можем да защитим нашия

MSIL е изключително лесен за декомпилиране. Как можем да защитим нашия

.NET код от reverse-engineering атаки?
Отговор:
Чрез използване на obfuscator за .NET, например Dotfuscator
DotFuscator се разпространява стандартно с Visual Studio .NET

Моите въпроси към вас