Post on 01-Jan-2016
description
Microsoft Microsoft .NET Framework.NET Framework
Кратък обзорКратък обзор
Програмиране заПрограмиране за .NET Framework .NET Frameworkhttp://http://www.nakov.comwww.nakov.com//dotnetdotnet//
Светлин НаковСветлин НаковНационална академия по Национална академия по разработка на софтуерразработка на софтуерacademy.devbg.orgacademy.devbg.org
Визията на Microsoft за .NET
ERP & BillingCustomerService
Sales
Потребители- На всяко
устройство- Навсякъде- По всяко време
XML Web УслугиИнтеграция на бизнес процесите и приложенията
Back OfficeХетерогенна инфраструктура от сървъри
SchedulingSchedulingAuthenticationAuthentication
NotificationNotification
.NET Framework.NET Framework.NET Framework.NET Framework
Модел за програмиране за Модел за програмиране за .NET.NET Платформа за изпълнение на Платформа за изпълнение на .NET.NET код в код в
управлявана средауправлявана среда Удобна среда за разработка и Удобна среда за разработка и
изпълнение на мрежови приложения и изпълнение на мрежови приложения и WebWeb услуги услуги
ПрограмноПрограмно API API и единен и единен framework, framework, независим от езиците за програмираненезависим от езиците за програмиране
Кодът работи на различни платформиКодът работи на различни платформи (Windows, Linux, FreeBSD, …)(Windows, Linux, FreeBSD, …)
Модел за програмиране за Модел за програмиране за .NET.NET Платформа за изпълнение на Платформа за изпълнение на .NET.NET код в код в
управлявана средауправлявана среда Удобна среда за разработка и Удобна среда за разработка и
изпълнение на мрежови приложения и изпълнение на мрежови приложения и WebWeb услуги услуги
ПрограмноПрограмно API API и единен и единен framework, framework, независим от езиците за програмираненезависим от езиците за програмиране
Кодът работи на различни платформиКодът работи на различни платформи (Windows, Linux, FreeBSD, …)(Windows, Linux, FreeBSD, …)
Сърцето наСърцето на .NET .NET Framework: Framework: FCL & CLRFCL & CLR Common Language RuntimeCommon Language Runtime
Управление на паметта (Управление на паметта (garbage collectiongarbage collection)) Интеграция на различни езициИнтеграция на различни езици Поддържа множество версии за компонентите Поддържа множество версии за компонентите
(т. нар. (т. нар. assembliesassemblies) – няма вече конфликти) – няма вече конфликти Интегрирана сигурностИнтегрирана сигурност
Framework Class LibraryFramework Class Library Предоставя основната функционалност за Предоставя основната функционалност за
разработкаразработка::
ASP.NET, Web Services, ADO.NET, Windows ASP.NET, Web Services, ADO.NET, Windows Forms, IO, XML,Forms, IO, XML, .. ....
.NET Framework.NET Framework Common Language RuntimeCommon Language Runtime
Operating SystemOperating System
Common Language RuntimeCommon Language Runtime
CLR CLR управлява процеса на управлява процеса на изпълнение на кодаизпълнение на кода
Управлява паметта, Управлява паметта, конкурентността, ...конкурентността, ...
Code-based securityCode-based security Role-based securityRole-based security
.NET Framework.NET Framework Base Class LibraryBase Class Library
Operating SystemOperating System
Common Language RuntimeCommon Language Runtime
.NET Framework (Base Class Library).NET Framework (Base Class Library)
Богата обектно-ориентирана Богата обектно-ориентирана библиотека от преизползваеми библиотека от преизползваеми типоветипове
КолекцииКолекции, , вход-изходвход-изход, , работа работа със символни низовесъс символни низове, …, …
.NET Framework.NET Framework Data Access LayerData Access Layer
Operating SystemOperating System
Common Language RuntimeCommon Language Runtime
.NET Framework (Base Class Library).NET Framework (Base Class Library)
ADO .NET and XMLADO .NET and XML
Достъп до релационни бази данниДостъп до релационни бази данни Disconnected Disconnected модел на даннитемодел на данните Работа с Работа с XMLXML
.NET Framework.NET Framework ASP.NET & Windows FormsASP.NET & Windows Forms
Operating SystemOperating System
Common Language RuntimeCommon Language Runtime
.NET Framework (Base Class Library).NET Framework (Base Class Library)
ADO .NET and XMLADO .NET and XML
ASP .NETASP .NETWeb Forms Web ServicesWeb Forms Web Services
Mobile Internet ToolkitMobile Internet Toolkit
WindowsWindowsFormsForms
Потребителски интерфейс за Потребителски интерфейс за приложениятаприложенията – Web- – Web-базиранбазиран, , Windows GUI, Web Windows GUI, Web услугиуслуги, …, …
.NET Framework.NET Framework Programming LanguagesProgramming Languages
Operating SystemOperating System
Common Language RuntimeCommon Language Runtime
.NET Framework (Base Class Library).NET Framework (Base Class Library)
ADO .NET and XMLADO .NET and XML
ASP .NETASP .NETWeb Forms Web ServicesWeb Forms Web Services
Mobile Internet ToolkitMobile Internet Toolkit
WindowsWindowsFormsForms
C++C++ C#C# VB.NETVB.NET PerlPerl J#J# ……
Използвате любимия си език!Използвате любимия си език!
.NET Framework.NET Framework Common Language SpecificationCommon Language Specification
Operating SystemOperating System
Common Language RuntimeCommon Language Runtime
.NET Framework (Base Class Library).NET Framework (Base Class Library)
ADO .NET and XMLADO .NET and XML
ASP .NETASP .NETWeb Forms Web ServicesWeb Forms Web Services
Mobile Internet ToolkitMobile Internet Toolkit
WindowsWindowsFormsForms
Common Language SpecificationCommon Language SpecificationC++C++ C#C# VB.NETVB.NET PerlPerl J#J# ……
.NET Framework.NET Framework Visual Studio .NETVisual Studio .NET
Operating SystemOperating System
Common Language RuntimeCommon Language Runtime
.NET Framework (Base Class Library).NET Framework (Base Class Library)
ADO .NET and XMLADO .NET and XML
ASP .NETASP .NETWeb Forms Web ServicesWeb Forms Web Services
Mobile Internet ToolkitMobile Internet Toolkit
WindowsWindowsFormsForms
Common Language SpecificationCommon Language Specification
C++C++ C#C# VB.NETVB.NET PerlPerl J#J# ……
Visu
al S
tud
io .N
ET
Visu
al S
tud
io .N
ET
Поддръжка на много езициПоддръжка на много езици IL (MSIL or CIL) – Intermediate LanguageIL (MSIL or CIL) – Intermediate Language
Език от ниско ниво (машинен език), като Език от ниско ниво (машинен език), като асемблер, но обектно-ориентиранасемблер, но обектно-ориентиран
CTS CTS – система от типове, вградена в– система от типове, вградена в CLR CLR Разнообразни типовеРазнообразни типове ( (intint, float, string, …), float, string, …) И стандартни операции над тези типовеИ стандартни операции над тези типове Два вида: Два вида: Value types Value types ии Reference types Reference types
CLS CLS – множество от спецификации, които – множество от спецификации, които трябва да се спазват от всички езици и трябва да се спазват от всички езици и библиотекибиблиотеки Така се осигурява възможността за Така се осигурява възможността за
взаимодействие между различните езицивзаимодействие между различните езици
Примерна програма наПримерна програма на MSIL MSIL
.method private hidebysig static void .method private hidebysig static void
Main() cil managedMain() cil managed
{{
.entrypoint.entrypoint
// Code size 11 (0xb)// Code size 11 (0xb)
.maxstack 8.maxstack 8
ldstr "Hello, world!"ldstr "Hello, world!"
call void call void
[mscorlib]System.Console::WriteLine(string)[mscorlib]System.Console::WriteLine(string)
retret
} } // end of method HelloWorld::Main// end of method HelloWorld::Main
.NET .NET езицитеезиците Езици, предоставени отЕзици, предоставени от Microsoft Microsoft
C++, C#, J#, VB.NET, C++, C#, J#, VB.NET, JScriptJScript
Езици от трети доставчициЕзици от трети доставчици Perl, Python, Pascal, APL, COBOL, Eiffel, Perl, Python, Pascal, APL, COBOL, Eiffel,
Haskell, ML, Oberon, Scheme, Smalltalk…Haskell, ML, Oberon, Scheme, Smalltalk…
Смесване на използваните езициСмесване на използваните езици Междуезиково наследяване на типове и Междуезиково наследяване на типове и
управление на изключенияуправление на изключения Един проект може да съдържа код на Един проект може да съдържа код на
различни езициразлични езици
Интеграцията е вграденаИнтеграцията е вградена, , а не сглобенаа не сглобена Няма допълнителни особености или други Няма допълнителни особености или други
APIAPI за учене за учене
Езикът Езикът C#C# Смесица междуСмесица между C++, Java C++, Java ии Delphi Delphi Компонентно-ориентиранКомпонентно-ориентиранo o програмиранепрограмиране
СвойстваСвойства, , методи, събитияметоди, събития АтрибутиАтрибути, XML, XML-базирана документация-базирана документация Всичко накуп, без Всичко накуп, без headerheader файлове, файлове, IDLIDL и т.н. и т.н. Може да се ползва в Може да се ползва в WebWeb-приложения-приложения
Всичко е обект!Всичко е обект! Примитивните типове са обектиПримитивните типове са обекти, , напр. напр.
5.ToString()5.ToString() е валидно извикване е валидно извикване Единна система типове = леснота за работаЕдинна система типове = леснота за работа Добра разширяемост и възможност за Добра разширяемост и възможност за
преизползванепреизползване
Езикът Езикът C# – C# – примерпример
using System;using System;
class HelloWorldclass HelloWorld{{ public static void public static void MMain()ain() {{ Console.WriteLine(Console.WriteLine(""HelloHello!!, world!, world!"");); }}}}
КомпилацияКомпилация
ИзпълнениеИзпълнение
JIT JIT компилаторкомпилатор
машинен машинен кодкод
MSILMSILкодкод
метаданниметаданни
изходен изходен кодкод
езиков езиков компилаторкомпилатор
Нарича сеНарича се assemblyassembly(.EXE (.EXE илиили
.DLL .DLL файлфайл))
Нарича сеНарича се assemblyassembly(.EXE (.EXE илиили
.DLL .DLL файлфайл))
- - Когато даден Когато даден метод се извика метод се извика за първи пътза първи път
- - Когато даден Когато даден метод се извика метод се извика за първи пътза първи път
Компилация и изпълнениеКомпилация и изпълнение
- - Прекомпилация Прекомпилация при инсталиранепри инсталиране- - Прекомпилация Прекомпилация при инсталиранепри инсталиране
VS.NET – VS.NET – Единна среда за Единна среда за разработка – единни уменияразработка – единни умения ОтОт Visual Studio.NET Visual Studio.NET можетеможете::
Да пишете кодДа пишете код Да рисувате потребителски интерфейсДа рисувате потребителски интерфейс Да разглеждате документациятаДа разглеждате документацията Да изпълнявате и тестватеДа изпълнявате и тествате Да дебъгватеДа дебъгвате
Единна среда за всички езициЕдинна среда за всички езици Единна среда за всички платформиЕдинна среда за всички платформи Единна среда за всички технологииЕдинна среда за всички технологии
Visual Studio .NETVisual Studio .NET
.NET Framework Library.NET Framework Library
Base Class LibraryBase Class Library
ADO.NET ADO.NET ии XML XML
Web FormsWeb Forms, , Web ServicesWeb Services,,Mobile Internet ToolkitMobile Internet Toolkit
WindowsWindowsFormsForms
ASP.NETASP.NET
System System
GlobalizationGlobalization
DiagnosticsDiagnostics
ConfigurationConfiguration
CollectionsCollections
ResourcesResources
ReflectionReflection
NetNet
IOIO
ThreadingThreading
TextText
ServiceProcessServiceProcess
SecuritySecurity RuntimeRuntimeInteropServicesInteropServices
RemotingRemoting
SerializationSerialization
System.DataSystem.Data
DesignDesign
ADOADO
SQLTypesSQLTypes
SQLSQL
System.XmlSystem.Xml
XPathXPath
XSLTXSLT SerializationSerialization
.NET Framework .NET Framework – пакети– пакетиSystem.WebSystem.Web
ConfigurationConfiguration SessionStateSessionState
CachingCaching SecuritySecurity
ServicesServices UIUIHtmlControlsHtmlControls
WebControlsWebControls
DescriptionDescription
DiscoveryDiscovery
ProtocolsProtocols System.DrawingSystem.Drawing
ImagingImaging
Drawing2DDrawing2D
TextText
PrintingPrinting
System.WinFormsSystem.WinForms
DesignDesign ComponentModelComponentModel
Пакетите от Пакетите от Base Class LibraryBase Class Library
SystemSystem
ThreadingThreading
TextText
ServiceProcessServiceProcess
SecuritySecurity
ResourcesResources
ReflectionReflection
NetNet
IOIO
GlobalizationGlobalization
DiagnosticsDiagnostics
ConfigurationConfiguration
CollectionsCollections
RuntimeRuntime
SerializationSerialization
RemotingRemoting
InteropServicesInteropServices
Base Class LibraryBase Class Library Типове данни, конвертиране, форматиранеТипове данни, конвертиране, форматиране КолекцииКолекции: : ArrayListArrayList, , HashtableHashtable, , ...... ИнтернационализацияИнтернационализация: : култури, сортиранекултури, сортиране I/O: I/O: Бинарни и текстови потоци, файлове, ...Бинарни и текстови потоци, файлове, ... Мрежово програмиранеМрежово програмиране: TCP/IP, HTTP, : TCP/IP, HTTP, ...... Reflection: Reflection: метаданни и създаване на метаданни и създаване на MSILMSIL СигурностСигурност:: Криптография, права за достъп Криптография, права за достъп ТекстТекст:: Кодирания, регулярни изрази, ... Кодирания, регулярни изрази, ... Remoting Remoting ии Serialization: Serialization: отдалечено отдалечено
извикванеизвикване Многонишковост и синхронизацияМногонишковост и синхронизация
Пакетите Пакетите Data Data ии XML XML
System.DataSystem.Data
SQLTypesSQLTypes
SQLClientSQLClient
CommonCommon
OleDbOleDb
System.XmlSystem.Xml
SerializationSerialization
XPathXPath
XSLTXSLT
ADO.NET ADO.NET ии XML XML ADO.NET ADO.NET приема всякакви типове данниприема всякакви типове данни
XML (XML (йерархичнийерархични), ), релационнирелационни, , ......
Мощно кеширане в паметтаМощно кеширане в паметта (DataSet) (DataSet) DataSet DataSet може да съдържа различни обектиможе да съдържа различни обекти: :
таблицитаблици, , изгледиизгледи, , релациирелации, constraints, , constraints, ...... Лек,Лек, stateless, disconnected stateless, disconnected модел модел Вградено поддържа релационен и Вградено поддържа релационен и XML XML достъпдостъп
Високоскоростен поточно-ориентиран Високоскоростен поточно-ориентиран достъп до даннитедостъп до данните
Силна поддръжка на Силна поддръжка на XML: XML: W3C DOM, XPath,W3C DOM, XPath, XSLT XSLT ии XSchema XSchema
VS.NET – DataSet VS.NET – DataSet редакторредактор
Пакетите от Пакетите от Windows FormsWindows Forms
System.DrawingSystem.Drawing
Drawing2DDrawing2D
ImagingImaging
PrintingPrinting
TextText
System.Windows.FormsSystem.Windows.Forms
DesignDesign ComponentModelComponentModel
Windows FormsWindows Forms Windows Forms е framework за създаване
на приложения с прозоречно-базиран графичен потребителски интерфейс RAD (Rapid Application Development)
Компонентно-ориентиран Базиран на събития
Богат набор от контроли Data-aware компоненти Поддръжка на печатане Вградена поддръжка на Unicode Позволява наследяване на потребителски
интерфейс
VS.NET – Windows Forms VS.NET – Windows Forms редакторредактор
ДемонстрацияДемонстрация ##11
Създаване на просто Създаване на просто приложение за достъп приложение за достъп до база от данни чрездо база от данни чрез::
Windows FormsWindows Forms ADO.NETADO.NET MS SQL ServerMS SQL Server Visual Studio .NETVisual Studio .NET
DataGridDataGrid DataSetDataSet
DatabaseDatabase
Microsoft Microsoft SQL ServerSQL Server
SqlConnectionSqlConnection
SqlDataAdapterSqlDataAdapter
FillFill UpdateUpdate
ДемонстрацияДемонстрация ##1 – 1 – архитектураархитектура
ApplicationApplication
Пакетите от Пакетите от ASP.NETASP.NET
System.WebSystem.Web
CachingCaching
ConfigurationConfiguration
ServicesServices UIUI
SessionStateSessionState
HtmlControlsHtmlControls
WebControlsWebControls
DescriptionDescription
DiscoveryDiscovery
SecuritySecurity
ProtocolsProtocols
Framework Framework за създаване на за създаване на Web-Web-базирани базирани приложения и приложения и WebWeb-услуги на всеки -услуги на всеки .NET.NET език език
C#, C++, VB.NET, C#, C++, VB.NET, JScriptJScript, , ......
Поддържа на различни клиентиПоддържа на различни клиенти DHTML, HTML 3.2, WML, DHTML, HTML 3.2, WML, мобилни устройствамобилни устройства
ASP.NET WebASP.NET Web-приложенията се -приложенията се компилират до компилират до assembliesassemblies
Кешират се при първо извикване и след това Кешират се при първо извикване и след това се изпълняват от кеша веднагасе изпълняват от кеша веднага
Има разделяне на кода от Има разделяне на кода от WebWeb-дизайна-дизайна Програмистите и дизайнерите могат да работят Програмистите и дизайнерите могат да работят
независимонезависимо
ASP.NETASP.NET
ASP.NETASP.NET
Богат набор отБогат набор от ASP.NET server ASP.NET server контроликонтроли Валидация на даннитеВалидация на данните DataData--bound gridsbound grids
Event-driven Event-driven модел за изпълнениемодел за изпълнение Отлична поддръжка на Отлична поддръжка на Web-Web-услугиуслуги Лесно внедряване (Лесно внедряване (deployment)deployment) Висока надеждностВисока надеждност Висока производителност и скалируемостВисока производителност и скалируемост Скалируемо управление на информацията Скалируемо управление на информацията
за състоянието (за състоянието (session statesession state managementmanagement))
VS.NET – Web Forms VS.NET – Web Forms редакторредактор
ДемонстрацияДемонстрация ##22
Създаване на просто Създаване на просто WebWeb--базирано приложение за базирано приложение за достъп до база данни чрез:достъп до база данни чрез:
ASP.NET (Web Forms)ASP.NET (Web Forms) ADO.NETADO.NET MS SQL ServerMS SQL Server MS Internet Information ServerMS Internet Information Server Visual Studio .NETVisual Studio .NET
DataGridDataGrid DataSetDataSet
DatabaseDatabase
Microsoft Microsoft SQL ServerSQL Server
SqlConnectionSqlConnection
SqlDataAdapterSqlDataAdapter
FillFill UpdateUpdate
ДемонстрацияДемонстрация ##2 – 2 – архитектураархитектура
Web ApplicationWeb Application
WebWeb-услуги-услуги WebWeb-услугите са програмни компоненти, -услугите са програмни компоненти,
достъпни отдалечено през достъпни отдалечено през WebWeb Използват стандартите Използват стандартите HTTP, XML HTTP, XML ии SOAP SOAP Имат стандартно описание на езика Имат стандартно описание на езика WSDLWSDL Извикват се с лекота от всеки клиент на всяка Извикват се с лекота от всеки клиент на всяка
платформаплатформа Моделът за изпълнение е “заявка-отговор” –Моделът за изпълнение е “заявка-отговор” –
прилича на компонентно-ориентираното прилича на компонентно-ориентираното програмиране, но работи през програмиране, но работи през WebWeb
ASP.NET ASP.NET –– програмен модел за разработка програмен модел за разработка на на WebWeb-услуги-услуги ПишемПишем .ASMX .ASMX файлове с обикновени класове и файлове с обикновени класове и
методи в тяхметоди в тях ASP.NET ASP.NET ги компилира при поискване, генерира ги компилира при поискване, генерира
им им WSDL WSDL и създава им тестова страницаи създава им тестова страница
Web Service – Web Service – пример на пример на C#C#ParcelTracker.asmxParcelTracker.asmxParcelTracker.asmxParcelTracker.asmx
<%@ WebService Language="C#" %><%@ WebService Language="C#" %>using System;using System;using System.Web.Services;using System.Web.Services;
public class ParcelTrackerWebServicepublic class ParcelTrackerWebService{{ [WebMethod][WebMethod] public string GetOrderStatus(public string GetOrderStatus( int orderNumber)int orderNumber) {{ // Implementation here// Implementation here // return some_result;// return some_result; }}}}
ДемонстрацияДемонстрация ##33
Създаване на проста Създаване на проста WebWeb-услуга чрез-услуга чрез::
ASP.NET (Web Services)ASP.NET (Web Services) MS Internet Information ServerMS Internet Information Server Visual Studio .NETVisual Studio .NET
.NET Framework – .NET Framework – ресурсиресурси WebWeb-сайтове-сайтове::
Официален сайт на Официален сайт на ..NET FrameworkNET Framework – – http://msdn.microsoft.com/netframework/http://msdn.microsoft.com/netframework/
Microsoft .NET Framework Community – Microsoft .NET Framework Community – http://www.gotdotnet.com/http://www.gotdotnet.com/
ASP.NET – ASP.NET – http://www.asp.net/http://www.asp.net/
.NET Windows Forms – .NET Windows Forms – http://www.windowsforms.net/http://www.windowsforms.net/
O’Reilly .NET Community Site – O’Reilly .NET Community Site – http://www.ondotnet.com/http://www.ondotnet.com/
Microsoft Patterns and Practices – Microsoft Patterns and Practices – http://msdn.microsoft.com/practices/http://msdn.microsoft.com/practices/
Code Project – Code Project – http://www.codeproject.net/http://www.codeproject.net/
.NET Framework – .NET Framework – ресурсиресурси WebWeb-сайтове-сайтове::
Mono – Open Source .NET FrameworkMono – Open Source .NET Framework – – http://www.go-mono.org/http://www.go-mono.org/
Rotor – MS Shared Source .NET CLI – Rotor – MS Shared Source .NET CLI – http://msdn.microsoft.com/net/sscli/http://msdn.microsoft.com/net/sscli/
Курс по Курс по .NET Framework .NET Framework в Софийски в Софийски Университет Университет –– http://www.nakov.com/dotnet/http://www.nakov.com/dotnet/
НюзгрупиНюзгрупи:: Нюзгрупата на Нюзгрупата на .NET Framework – .NET Framework – news://news://
msnews.microsoft.commsnews.microsoft.com//microsoft.public.dotnet.frameworkmicrosoft.public.dotnet.framework
Българската нюзгрупа на Българската нюзгрупа на Microsoft –Microsoft –news://msnews.microsoft.com/microsoft.public.news://msnews.microsoft.com/microsoft.public.bg.developerbg.developer
ВъпросиВъпроси??
Microsoft .NET FrameworkMicrosoft .NET FrameworkКратък обзорКратък обзор