Tajniki C# i.net Framework : buduj wydajne aplikacje dzięki zaawansowanym funkcjom języka C# i architektury.net. / Marino Posadas.

Podobne dokumenty
C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści

Podstawy programowania. Wprowadzenie

Marino Posadas. Tajniki. C# i.net Framework. Wydajne aplikacje dzięki zaawansowanym funkcjom języka C# i architektury.net

Leonard G. Lobel Eric D. Boyd. Azure SQL Database Krok po kroku. Microsoft. Przekład: Marek Włodarz. APN Promise, Warszawa 2014

Projekt: Mikro zaprogramowane na sukces!

Programowanie.NET - kurs zaawansowany

Studia podyplomowe. Programowanie na platformie Microsoft Visual Studio.NET

Spis treści. Część I Wprowadzenie do pakietu oprogramowania Analysis Services

Szczegółowy opis zamówienia:

Programowanie MorphX Ax

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, O STRUKTURZE PRZEDMIOTOWEJ

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Zaawansowane programowanie w języku C++

C# 6.0 w pigułce / Joseph Albahari, Ben Albahari. Gliwice, cop Spis treści

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Cena szkolenia. Opis kursu

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

Zacznij Tu! Poznaj Microsoft Visual Basic. Michael Halvorson. Przekład: Joanna Zatorska

Tajniki ASP.NET Core 2.0 : wzorzec MVC, konfiguracja, routing, wdrażanie i jeszcze więcej / Ricardo Peres. Warszawa, 2018.

Adaptywny kod : zwinne programowanie, wzorce projektowe i SOLID-ne zasady / Gary McLean Hall. Gliwice, cop Spis treści

Spis treści. oraz Microsoft Visual Studio Wstęp... xiii. Część I Wprowadzenie do języka Microsoft Visual C# 1 Wprowadzenie do języka C#...

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

Załącznik nr 1 do zapytania ofertowego nr 1/POKL/2015

Rok akademicki: 2012/2013 Kod: ZIE s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Wprowadzenie do programowania

Języki i paradygmaty programowania - 1

Część I Rozpoczęcie pracy z usługami Reporting Services

Część I Dostęp do danych oraz moŝliwości programowe (silnik bazy danych)

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Programowanie obiektowe

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

Microsoft Visual C# 2012 Krok po kroku

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

INŻYNIERIA OPROGRAMOWANIA

Przesłanki powstania książki... xvi Dla kogo przeznaczona jest ta książka?... xvi Co znajdziemy wewnątrz książki?... xvii

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Programowanie obiektowe

Ramowy plan kursu. Lp. Moduły Wyk. Lab. Przekazywane treści

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

Zakres tematyczny dotyczący podstaw programowania Microsoft Office Excel za pomocą VBA

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

OBC01/TOPMOB Projektowanie w języku Objective-C

1 Ergonomia i komputer Wprowadzenie Krótka historia ergonomii Ergonomiczna praca z komputerem... 11

Środowiska i platformy programistyczne

MATERIAŁY DO ZAJĘĆ I. Podstawowe pojęcia. Algorytm. Spis treści Przepis

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

Część I Istota analizy biznesowej a Analysis Services

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1

Egzamin / zaliczenie na ocenę*

Spis treści. Przedmowa

edycja 20 opracowany zgodnie z Zarządzeniami Wewnętrznymi PWr. nr ZW 124/2017 i 112/2017 i 113/2017

1 Wprowadzenie do koncepcji Microsoft Office BI 1 Zakres ksiąŝki 2 Cel ksiąŝki 3 Wprowadzenie do tematu 3 Zawartość rozdziałów 4

Kurs MATURA Z INFORMATYKI

Historia modeli programowania

Godzina (wtorek)

STUDIA STACJONARNE I STOPNIA Przedmioty kierunkowe

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

PRZEWODNIK PO PRZEDMIOCIE

Analiza i projektowanie aplikacji Java

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Wykład 1 Inżynieria Oprogramowania

Microsoft SQL Server Podstawy T-SQL

Piotr Bubacz Cloud Computing

Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop Spis treści

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII

PRZEWODNIK PO PRZEDMIOCIE

Programowanie obiektowe Object programming. Elektrotechnika II stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

PROGRAM MICROSOFT DEVELOPER NETWORK ACADEMIC ALLIANCE MSDN AA

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

PHP i MySQL dla każdego / Marcin Lis. Wyd. 3. Gliwice, cop Spis treści

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

Ekspert MS SQL Server Oferta nr 00/08

Microsoft IT Academy kurs programowania

STUDIA NIESTACJONARNE I STOPNIA Przedmioty kierunkowe

Projektowanie obiektowe Wzorce projektowe. Gang of Four Strukturalne wzorce projektowe (Wzorce interfejsów)

Informatyczne fundamenty

System zarządzający grami programistycznymi Meridius

Wzorce projektowe. dr inż. Marcin Pietroo

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

PRZEWODNIK PO PRZEDMIOCIE

Wybrane działy Informatyki Stosowanej

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Transkrypt:

Tajniki C# i.net Framework : buduj wydajne aplikacje dzięki zaawansowanym funkcjom języka C# i architektury.net. / Marino Posadas. Warszawa, 2017 Spis treści Wstęp xvii Rozdział 1: Wewnątrz CLR 1 Uwagi dotyczące kilku ważnych pojęć komputerowych 2 Kontekst 2 Model wykonywania wielu zadań w systemie operacyjnym 2 Typy kontekstu 2 Bezpieczeństwo wątków 3 Stan 3 Stan programu 4 Serializacja 4 Proces 5 Wątek 5 SysInternals 7 Pamięć statyczna i dynamiczna 9 Odśmiecanie pamięci 10 Przetwarzanie współbieżne 10 Przetwarzanie równoległe 11 Programowanie imperatywne 11 Programowanie deklaratywne 11 Ewolucja.NET 12.NET jako reakcja na świat języka Java 13 Ruch otwartego oprogramowania i.net Core 13 Common Language Runtime 15 Common Intermediate Language 16 Zarządzane wykonywanie kodu 16 Składniki i języki 17 Struktura pliku podzespołu 18 Metadane 21 Wprowadzenie do metadanych przy pomocy podstawowego programu Hello World 21 PreJIT, JIT, EconoJIT i RyuJIT 26 Wspólny system typów 28 Szybka wskazówka dotycząca analizy wykonywania i pamięci dla podzespołu w Visual Studio 2015 30 Stos i sterta 32 Odśmiecanie pamięci 36

Implementowanie algorytmów w CLR 42 Struktury danych, algorytmy i złożoność 43 Notacja wielkiego O 43 Istotne funkcje pojawiające się w wersjach 4.5x, 4.6 oraz.net Core 1.0 i 1.1 47.NET 4.5.x 47.NET 4.6 (wraz z Visual Studio 2015) 48.NET Core 1.0 49.NET Core 1.1 49 Podsumowanie 50 Rozdział 2: Najważniejsze pojęcia języka C# i platformy.net 51 C# - co jest innego w tym języku? 52 Języki: silnie typowane, słabo typowane, dynamiczne i statyczne 53 Główne różnice 54 Prawdziwy powód dla stworzenia delegatów 57 Ewolucja w wersjach 2.0 i 3.0 61 Typy ogólne 62 Tworzenie niestandardowych typów i metod ogólnych 63 Wyrażenia lambda i typy anonimowe 68 Wyrażenia lambda 69 Składnia LINQ 72 Składnia LINQ jest oparta na języku SQL 73 Odroczone wykonywanie 74 Łączenie i grupowanie kolekcji 74 Projekcje typów 76 Metody rozszerzeniowe 77 Podsumowanie 78 Rozdział 3: Zaawansowane pojęcia języka C# i platformy.net 79 C# 4 i.net Framework 4.0 80 Kowariancja i kontrawariancja 80 Kowariancja w interfejsach 82 Kowariancja w typach ogólnych 84 Kowariancja w LINQ 85 Kontrawariancja 86 Krotki: przypomnienie 87 Krotki: implementacja w C# 88 Krotki: wsparcie dla równości strukturalnej 89 Krotki a typy anonimowe 90 Leniwe inicjowanie i tworzenie wystąpień obiektów 92 Programowanie dynamiczne 95 Dynamiczne typowanie 95 Obiekt ExpandoObject 98 Parametry opcjonalne i nazwane 100

Obiekt Task i wywołania asynchroniczne 100 C# 5.0: deklaracje async/await 103 Co nowego w wersji C# 6.0 104 Interpolacja łańcuchów tekstowych 105 Filtry wyjątków 105 Operator nameof 106 Operator warunkowy dla wartości null 107 Automatyczne inicjowanie właściwości 109 Statyczne deklaracje using 110 Metody z ciałem w postaci wyrażenia 111 Inicjowanie indeksów 112 Co nowego w wersji C# 7.0 113 Literały binarne i separatory cyfr 113 Dopasowywanie do wzorca i instrukcje switch 114 Krotki 116 Dekompozycja 118 Funkcje lokalne 119 Zwracanie wartości typu ref 119 Podsumowanie 120 Rozdział 4: Porównanie różnych typów podejścia do programowania 123 Języki funkcjonalne 124 F# 4 a platforma.net Framework 126 Nieodłączny program demonstracyjny Hello World 127 Identyfikatory i zakres 129 Listy 130 Język TypeScript 136 Nowy JavaScript 137 TypeScript: nadzbiór JavaScript 139 Czym dokładnie jest TypeScript? 140 Główne funkcje i koalicje 140 Instalowanie narzędzi 141 Transpilacja do różnych wersji 143 Korzyści w zintegrowanym środowisku programistycznym 144 Uwaga na temat obiektowo zorientowanej składni języka TypeScript 146 Więcej szczegółów i funkcjonalności 147 Podsumowanie 147 Rozdział 5: Mechanizm refleksji i programowanie dynamiczne 149 Refleksja w.net Framework 150 Wywoływanie zewnętrznych podzespołów 155 Refleksja dla typów ogólnych 157 Emitowanie kodu w trakcie działania programu 159 Przestrzeń nazw System.CodeDOM 159

Przestrzeń nazw Reflection.Emit 162 Interoperacyjność 163 Główne podzespoły Interop 165 Formatowanie komórek 169 Wstawianie multimediów do arkusza 170 Interop w Microsoft Word 175 Aplikacje dla pakietu Office 180 Domyślny projekt aplikacji pakietu Office 180 Różnice architektoniczne 183 Podsumowanie 185 Rozdział 6: Programowanie baz danych SQL 187 Model relacyjny 188 Właściwości tabel relacyjnych 188 Narzędzia - SQL Server 2014 191 Język SQL 193 Korzystanie z SQL Server z poziomu Visual Studio 194 Dostęp do danych w Visual Studio 200 Dostęp do danych w.net 201 Korzystanie z podstawowych obiektów ADO.NET 203 Konfigurowanie interfejsu użytkownika 204 Model danych Entity Framework 205 Podsumowanie 211 Rozdział 7: Programowanie baz danych NoSQL 213 Krótki kontekst historyczny 214 Świat NoSQL 215 Zmiany architektoniczne względem systemów RDBMS 217 Zapytania do innych zapytań 218 Problem nieznormalizowanych danych 218 Zagnieżdżanie danych 218 Operacje CRUD 219 MongoDB w systemie Windows 221 Struktura plików i domyślna konfiguracja 221 Kilka przydatnych poleceń 223 Zmienianie danych - pozostałe operacje CRUD 227 Indeksy tekstowe 228 MongoDB z poziomu Visual Studio 230 Pierwszy program demonstracyjny: proste zapytanie z Visual Studio 230 Operacje CRUD 234 Usuwanie 234 Wstawianie 235 Modyfikacje i zastąpienia 236 Podsumowanie 237

Rozdział 8: Programowanie otwarte 239 Historyczne ruchy programowania otwartego 240 Inne projekty i inicjatywy 240 Otwarty kod źródłowy dla programisty 241 Inne języki 241 Projekt Roslyn 245 Różnice w stosunku do tradycyjnych kompilatorów 246 Rozpoczęcie pracy z Roslyn 247 Pierwsze spojrzenie na Microsoft Code Analysis Services 250 Analizatory kodu 250 Cały przykład otwartego oprogramowania: ScriptCS 251 Podstawowy projekt wykorzystujący Microsoft.CodeAnalysis 252 Pierwsze podejście do refaktoringu kodu 255 Debugowanie i testowanie programu demonstracyjnego 260 TypeScript 262 Debugowanie kodu TypeScript 263 Debugowanie TypeScript przy pomocy Chrome 264 Interfejsy i silne typowanie 264 Implementowanie przestrzeni nazw 265 Deklaracje, zakres i Intellisense 266 Zakres i hermetyzacja 267 Klasy i dziedziczenie klas 268 Funkcje 270 Tablice i interfejsy 274 Więcej języka TypeScript w działaniu 275 Połączenie z DOM 278 Podsumowanie 280 Rozdział 9: Architektura 281 Wybór architektury 282 Platforma Microsoft 282 Platforma uniwersalna 283 Model aplikacji MSF 284 Model zespołu 285 Model zarządzania 288 Model ryzyka 290 Ocena ryzyka 292 Szacowanie ryzyka 292 Plany działań na wypadek ryzyka 292 Narzędzia CASE 294 Rola Visio 295 Pierwszy przykład 296 Projekt bazy danych 298 Tworzenie demonstracyjnej aplikacji w Visual Studio 300 Projektowanie serwisu WWW 302

Raporty 306 Wiele innych opcji 307 BPMN 2.0 (Business Process Model and Notation) 308 Obsługa standardu UML 310 Narzędzia Visual Studio do planowania architektury, testowania i analizy 310 Architektura aplikacji w Visual Studio 310 Diagramy klas 313 Testowanie 314 Testowanie naszej aplikacji w Visual Studio 314 Menu Analyze 317 Koniec cyklu życia - publikowanie rozwiązania 317 Podsumowanie 319 Rozdział 10: Wzorce projektowe 321 Początki 322 Zasady SOLID 322 Zasada pojedynczej odpowiedzialności 324 Przykład 326 Zasada otwarte-zamknięte 330 Powrót do naszego przykładu 331 Zasada podstawienia Liskov 333 Ponownie wracamy do kodu 334 Inne implementacje zasady podstawienia Liskov w.net(typy ogólne) 335 Zasada rozdzielenia interfejsów 338 Zasada odwrócenia zależności 341 Końcowa wersja programu przykładowego 341 Wzorce projektowe 344 Singleton 347 Wzorzec fabryki 348 Wzorzec adaptera 348 Wzorzec fasady 351 Wzorzec dekoratora 352 Wzorzec polecenia 352 Przykład implementacji obecnej już w.net 353 Wzorzec obserwatora 354 Wzorzec strategii 356 Inne wzorce programowe 356 Inne wzorce 359 Podsumowanie 360 Rozdział 11: Bezpieczeństwo 361 Inicjatywa OWASP 362 Lista 10 największych zagrożeń według OWASP 362 A1 - Wstrzykiwanie 366 Wstrzykiwanie kodu SQL 366

Zapobieganie 367 Przypadek baz danych NoSQL 369 A2 - Niewłaściwe uwierzytelnianie i zarządzanie sesją 370 Przyczyny 371 Zapobieganie 372 Kodowanie w.net w związku z A2 373 Aplikacje biurkowe 373 Aplikacje WWW 374 A3 - Cross-Site Scripting (XSS) 377 Zapobieganie 379 A4 - Niebezpieczne bezpośrednie odwołania do obiektów 379 Zapobieganie 381 A5 - Błędna konfiguracja zabezpieczeń 382 Możliwe przykłady ataków 383 Zapobieganie - aspekty warte rozważenia 384 Środki zapobiegawcze 384 A6 - Ujawnienie wrażliwych danych 385 A7 - Brakująca kontrola dostępu na poziomie funkcji 387 Zapobieganie 389 A8 - Cross-Site Request Forgery 389 Zapobieganie 390 A9 - Wykorzystanie składników ze znanymi lukami zabezpieczeń 391 A10 - Niesprawdzone przekierowania 393 Podsumowanie 394 Rozdział 12: Wydajność 395 Inżynieria wydajności aplikacji 395 Narzędzia 397 Zaawansowane opcje w Visual Studio 2015 398 Inne narzędzia 406 Proces dostrajania wydajności 408 Liczniki wydajności 409 Wykrywanie wąskich gardeł 409 Korzystanie z kodu do oceny wydajności 412 Optymalizowanie aplikacji WWW 415 Optymalizacja IIS 416 Optymalizacja ASP.NET 417 Podsumowanie 423 Rozdział 13: Tematy zaawansowane 425 Podsystem komunikatów Windows 426 Struktura komunikatu 426 Techniki tworzenia podklas 429 Kilka przydatnych narzędzi 431 Platform/Invoke: wywoływanie funkcji systemu operacyjnego z.net 434

Proces wywoływania platformowego 434 Windows Management Instrumentation 437 Programowanie równoległe 446 Różnica pomiędzy wielowątkowością a programowaniem równoległym 448 Parallel LINQ 449 Radzenie sobie z innymi problemami 453 Anulowanie wykonywania 454 Klasa Parallel 456 Wersja pętli Parallel.ForEach 459 Biblioteka Task Parallel Library 461 Komunikacja pomiędzy wątkami 461.NET Core 1.0 467 Lista obsługiwanych środowisk 468 Core FX 468 Core CLR 469 Core RT 469 Core CLI 470 Instalacja.NET Core 470 Interfejs CLI 477 ASP.NET Core 1.0 479 Co nowego 479 Pierwsze podejście 480 Ustawienia konfiguracji i uruchamiania 482 Samodzielne aplikacje 486 ASP.NET Core 1.0 MVC 487 Zarządzanie skryptami 493.NET Core 1.1 494 Podsumowanie 495 Indeks 497 oprac. BPK