Upload
others
View
13
Download
0
Embed Size (px)
Citation preview
#dotnext
Keynote
Сколькожизнейу.NETРассуждаемопрошлом,настоящемибудущемлюбимойплатформы
ДмитрийСошниковТехнологическийевангелист,Microsoftvk.com/shwars
Поностальгировать
❶
Развенчатьнесколькомифов❷
Сейчаслучшеевремя,чтобыбыть.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.
#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);}
Свёрткасложности…
WriteOnce(inJava).RunEverywhere.
Writeinany.NETLanguage.RunonWindows.
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
#dotnext
Демонстрация
VisualStudio15RC2PatternMatching&refresults
Microsoft.NET
.NET FRAMEWORK SSCLI “Rotor”
Mono
Silverlight
Silverlight для WP
WinRT
Миф№1:Microsoftвсёвремяменяеттехнологииизаставляетнаспереучиваться…
Темвременемвпараллельнойвселенной…
10самыхпопулярныхJS-фреймворковянваря2016г.
http://bit.ly/dotpoll
Миф№2:MicrosoftубилSilverlight…
…иоставилнасбезработы!…инампришлосьпереучиваться!
.NET FRAMEWORK .NET COREXAMARIN
РазработкавXamarinОбщий код для разных платформ
100% APIs доступно
Встроенные эмуляторы
C#+XIB C#+AXML C#+XAML
NativeUI NativeUI NativeUI
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
WindowsUniversalApps
.NETMF Xamarin /Unity
#dotnext
Демонстрация
MicrosoftBandСтавимэкспериментнадокладчике…
.NET FRAMEWORK .NET CORE XAMARIN
МОДЕЛИ
ПРИЛОЖЕНИЙ
БАЗОВЫЕ
БИБЛИОТЕКИ
*
.NET FRAMEWORK .NET CORE XAMARIN
APP
MO
DEL
SBA
SELI
BRA
RIES
.NET FRAMEWORK .NET CORE XAMARIN
*
.NET FRAMEWORK .NET CORE XAMARIN
.NET FRAMEWORK .NET CORE XAMARIN
*
TOOLS
Открытаяразработка
http://dotnet.github.io
CompilerServices“Roslyn”
• Синтаксическийанализтекстапрограмм
• Семантическийанализ
• Компиляция• Преобразования
CognitiveServices
• Анализизображений
• Анализтекста• Анализголоса• ПоискBing• AcademicServices
BotFramework
• Абстракциидляпостроениядиалогов,заполненияформ,…
• Независимоотканалаобщения(Skype,Telegram,…)
.NET FRAMEWORK .NET CORE XAMARIN
*
TOOLS
#dotnext
Демонстрация
RoslynдляанализапрограммКакразработчикиназываютпеременные
CompilerServices“Roslyn”
• Синтаксическийанализтекстапрограмм
• Семантическийанализ
• Компиляция• Преобразования
CognitiveServices
• Анализизображений
• Анализтекста• Анализголоса• ПоискBing• AcademicServices
BotFramework
• Абстракциидляпостроениядиалогов,заполненияформ,…
• Независимоотканалаобщения(Skype,Telegram,…)
.NET FRAMEWORK .NET CORE XAMARIN
*
TOOLS
#dotnext
Демонстрация
F#Чтоделаетженщинусчастливой?
CompilerServices“Roslyn”
• Синтаксическийанализтекстапрограмм
• Семантическийанализ
• Компиляция• Преобразования
CognitiveServices
• Анализизображений
• Анализтекста• Анализголоса• ПоискBing• AcademicServices
BotFramework
• Абстракциидляпостроениядиалогов,заполненияформ,…
• Независимоотканалаобщения(Skype,Telegram,…)
MicrosoftBotFramework
Логикабота(WebAPI воблаке)
#dotnext
Демонстрация
MicrosoftBotFramework@ElllisaBot
http://aka.ms/aicloud
#dotnext
Демонстрация
WebSharperHTML5/JSнаплатформе.NET
dotnetConf 2016Погружениевмир.NET
3днябесплатногоонлайн-контентаотучастниковсообщества.NETисотрудниковпродуктовыхгруппMicrosoft
НочьюL
http://www.dotnetconf.net
Сейчаслучшеевремя,чтобыбыть.NET-разработчиком
❶Прекрасныеязыки
(C#,F#)
❷Всеплатформы
❸Крутыесервисы
(Cognitive,ML,IoT,Bots)
Контакты
ДмитрийСошников[email protected]/shwars |vk.com/shwarsblog.soshnikov.com