Top Banner
52

Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

Feb 23, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем
Page 2: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

#dotnext

Keynote

Сколькожизнейу.NETРассуждаемопрошлом,настоящемибудущемлюбимойплатформы

ДмитрийСошниковТехнологическийевангелист,Microsoftvk.com/shwars

Page 3: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

Поностальгировать

Page 4: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

Развенчатьнесколькомифов❷

Page 5: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

Сейчаслучшеевремя,чтобыбыть.NET-разработчиком

Page 6: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

СЛОЖНОСТЬ

Page 7: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

000100IDENTIFICATIONDIVISION.000200PROGRAM-ID.HELLOWORLD.000300000400*000500ENVIRONMENTDIVISION.000600CONFIGURATIONSECTION.000700SOURCE-COMPUTER.RM.000800OBJECT-COMPUTER.RM.000900001000DATADIVISION.001100FILESECTION.001200100000PROCEDUREDIVISION.100100100200MAIN-LOGICSECTION.100300BEGIN.100400DISPLAY""LINE1POSITION1ERASEEOS.100500DISPLAY"Helloworld!"LINE15POSITION10.100600STOPRUN.100700MAIN-LOGIC-EXIT.100800EXIT.

Page 8: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем
Page 9: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

#defineSTRICT#include<windows.h>#include<mem.h>BOOLInitApp(HINSTANCE);LRESULTCALLBACK_exportWndProc(HWND,UINT,WPARAM,LPARAM);charconst szClassName[]="WindowAppClass";charconst szWindowTitle[]="WindowApplication";

#pragmaargsusedint PASCALWinMain(HINSTANCEhInstance,

HINSTANCEhPrevInstance,LPSTRlpszCmdLine,int nCmdShow)

{MSGmsg;HWNDhwnd;if(!hPrevInstance){if(!InitApp(hInstance))returnFALSE;}else{MessageBox(NULL,"Можнозапускатьтолькооднукопиюприложения","Ошибка",

MB_OK|MB_ICONSTOP);returnFALSE;}hwnd =CreateWindow(szClassName,szWindowTitle,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,0,0,hInstance,NULL);if(!hwnd)returnFALSE;ShowWindow(hwnd,nCmdShow);UpdateWindow(hwnd);while(GetMessage(&msg,0,0,0)){ DispatchMessage(&msg); }returnmsg.wParam; }

BOOLInitApp(HINSTANCEhInstance){ATOMaWndClass;WNDCLASSwc;

memset(&wc,0,sizeof(wc));wc.style =0;wc.lpfnWndProc =(WNDPROC)WndProc;wc.cbClsExtra =0;wc.cbWndExtra =0;wc.hInstance =hInstance;wc.hIcon =LoadIcon(NULL,IDI_APPLICATION);wc.hCursor =LoadCursor(NULL,IDC_ARROW);wc.hbrBackground =(HBRUSH)(COLOR_WINDOW+1);wc.lpszMenuName =(LPSTR)NULL;wc.lpszClassName =(LPSTR)szClassName;aWndClass =RegisterClass(&wc);return(aWndClass !=0);}

LRESULTCALLBACK_exportWndProc(HWNDhwnd,UINTmsg,WPARAMwParam,LPARAMlParam){switch(msg){caseWM_LBUTTONDOWN:{MessageBox(NULL, "Нажаталеваяклавишамыши","Сообщение",MB_OK|

MB_ICONINFORMATION);return0;}caseWM_RBUTTONDOWN:{MessageBeep(-1);//звуковойсигналMessageBox(NULL,"Нажатаправаяклавишамыши","Сообщение",MB_OK|MB_ICONINFORMATION);return0;}caseWM_DESTROY:{ PostQuitMessage(0); return0; }}returnDefWindowProc(hwnd,msg,wParam,lParam);}

Page 10: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем
Page 11: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

Свёрткасложности…

Page 12: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем
Page 13: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

WriteOnce(inJava).RunEverywhere.

Writeinany.NETLanguage.RunonWindows.

Page 14: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

public float Average(IEnumerable<int> l){

(int sum, int count) Count(IEnumerable <int> l){

var r = (s:0,c: 0);foreach (var x in l){

r.s += x; r.c++;}return r;

}var z = Count(l);return z.sum / z.count;

}

C#7

ЛокальныефункцииTuples

Page 15: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

#dotnext

Демонстрация

VisualStudio15RC2PatternMatching&refresults

Page 16: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

Microsoft.NET

.NET FRAMEWORK SSCLI “Rotor”

Mono

Silverlight

Silverlight для WP

WinRT

Page 17: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

Миф№1:Microsoftвсёвремяменяеттехнологииизаставляетнаспереучиваться…

Темвременемвпараллельнойвселенной…

10самыхпопулярныхJS-фреймворковянваря2016г.

Page 18: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем
Page 19: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

http://bit.ly/dotpoll

Page 20: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

Миф№2:MicrosoftубилSilverlight…

…иоставилнасбезработы!…инампришлосьпереучиваться!

Page 21: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем
Page 22: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

.NET FRAMEWORK .NET COREXAMARIN

Page 23: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем
Page 24: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем
Page 25: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

РазработкавXamarinОбщий код для разных платформ

100% APIs доступно

Встроенные эмуляторы

C#+XIB C#+AXML C#+XAML

NativeUI NativeUI NativeUI

Page 26: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

Windows-specificC#Android-specificC#iOS-specificC#

SharedC#Logic

Java

Android Studioin

Android codebaseiOS codebase

Objective-C

XCodein

C#

Visual Studioin

Windows codebase

SharedXamarin.FormsUI

Speech Camera Settings Connectivity SMS Location

CommonmobileAPI/Plugins

Page 27: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

WindowsUniversalApps

.NETMF Xamarin /Unity

Page 28: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

#dotnext

Демонстрация

MicrosoftBandСтавимэкспериментнадокладчике…

Page 29: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

.NET FRAMEWORK .NET CORE XAMARIN

МОДЕЛИ

ПРИЛОЖЕНИЙ

БАЗОВЫЕ

БИБЛИОТЕКИ

*

Page 30: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

.NET FRAMEWORK .NET CORE XAMARIN

APP

MO

DEL

SBA

SELI

BRA

RIES

Page 31: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

.NET FRAMEWORK .NET CORE XAMARIN

*

Page 32: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

.NET FRAMEWORK .NET CORE XAMARIN

Page 33: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

.NET FRAMEWORK .NET CORE XAMARIN

*

TOOLS

Page 34: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем
Page 35: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем
Page 36: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

Открытаяразработка

http://dotnet.github.io

Page 37: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем
Page 38: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

CompilerServices“Roslyn”

• Синтаксическийанализтекстапрограмм

• Семантическийанализ

• Компиляция• Преобразования

CognitiveServices

• Анализизображений

• Анализтекста• Анализголоса• ПоискBing• AcademicServices

BotFramework

• Абстракциидляпостроениядиалогов,заполненияформ,…

• Независимоотканалаобщения(Skype,Telegram,…)

Page 39: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

.NET FRAMEWORK .NET CORE XAMARIN

*

TOOLS

Page 40: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

#dotnext

Демонстрация

RoslynдляанализапрограммКакразработчикиназываютпеременные

Page 41: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

CompilerServices“Roslyn”

• Синтаксическийанализтекстапрограмм

• Семантическийанализ

• Компиляция• Преобразования

CognitiveServices

• Анализизображений

• Анализтекста• Анализголоса• ПоискBing• AcademicServices

BotFramework

• Абстракциидляпостроениядиалогов,заполненияформ,…

• Независимоотканалаобщения(Skype,Telegram,…)

Page 42: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

.NET FRAMEWORK .NET CORE XAMARIN

*

TOOLS

Page 43: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

#dotnext

Демонстрация

F#Чтоделаетженщинусчастливой?

Page 44: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

CompilerServices“Roslyn”

• Синтаксическийанализтекстапрограмм

• Семантическийанализ

• Компиляция• Преобразования

CognitiveServices

• Анализизображений

• Анализтекста• Анализголоса• ПоискBing• AcademicServices

BotFramework

• Абстракциидляпостроениядиалогов,заполненияформ,…

• Независимоотканалаобщения(Skype,Telegram,…)

Page 45: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

MicrosoftBotFramework

Логикабота(WebAPI воблаке)

Page 46: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

#dotnext

Демонстрация

MicrosoftBotFramework@ElllisaBot

Page 47: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

http://aka.ms/aicloud

Page 48: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем
Page 49: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

#dotnext

Демонстрация

WebSharperHTML5/JSнаплатформе.NET

Page 50: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

dotnetConf 2016Погружениевмир.NET

3днябесплатногоонлайн-контентаотучастниковсообщества.NETисотрудниковпродуктовыхгруппMicrosoft

НочьюL

http://www.dotnetconf.net

Page 51: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

Сейчаслучшеевремя,чтобыбыть.NET-разработчиком

❶Прекрасныеязыки

(C#,F#)

❷Всеплатформы

❸Крутыесервисы

(Cognitive,ML,IoT,Bots)

Page 52: Keynote - JUG Ru Grouppublic.jugru.org/dotnext/2016/spb/day_1/track_1/...#dotnext Keynote Сколько жизней у .NET Рассуждаем о прошлом, настоящем

Контакты

ДмитрийСошников[email protected]/shwars |vk.com/shwarsblog.soshnikov.com