.NET v SQL Serveru. Jan Drozen NDBI039.

Podobné dokumenty
Zabezpečení proti SQL injection

Vladimír

1 - Úvod do platformy.net. IW5 - Programování v.net a C#

Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework

PROGRAMOVÁNÍ PRO MS WINDOWS 2

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

KAPITOLA 1 Představení platformy Microsoft SQL Server 2008

Stored Procedures & Database Triggers, Tiskové sestavy v Oracle Reports

Nové jazykové brány do Caché. Daniel Kutáč

Úvod do databázových systémů

Programování a implementace Microsoft SQL Server 2014 databází

Jakub Čermák Microsoft Student Partner

Vytváření uživatelských datových typů a funkcí v Javě

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.

IRAE 07/08 Přednáška č. 2. atr1 atr2. atr1 atr2 -33

Informační systém pro podporu řízení, správu a zjišťování aktuálního stavu rozvrhované výuky

Programovací jazyk Úvod do programování v C#

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Nasazení Object Relation Mapping nástrojů nad legacy datovým modelem

Monitoring SQL Server, Resource Governor, Tracing SQL Server

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo

Pokročilé techniky tvorby sestav v Caché. ZENové Reporty

Tvorba informačních systémů

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25

Použití databází na Webu

Diagnostika webových aplikací v Azure

1. Programování proti rozhraní

Virtual Private Database (VPD) Jaroslav Kotrč

Jazyk C# - přístup k datům

RMI Remote Method Invocation

Úvod do Entity Frameworku

PostgreSQL. Podpora dědičnosti Rozšiřitelnost vlastní datové typy. Univerzální nasazení ve vědecké sféře

Programovací jazyk C# Úvod do programování v C#

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

Zabezpečení proti SQL injection

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Novinky ve Visual Studio Tomáš Kroupa

Bc. David Gešvindr MSP MCSA MCTS MCITP MCPD

Programovací jazyk C# Úvod do programování v C#

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Stopařův průvodce po ADO.NET a LINQ aneb Foxařův průvodce po práci s daty v.net Milan Kosina

Programování v jazyku C# II. 5.kapitola

Seznámení s prostředím dot.net Framework

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

Stěhování aplikací. Michal Tomek, Sales Manager

Obsah. Verze SQL Serveru

Tvorba informačních systémů

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Databázové systémy úvod

PB161 Programování v jazyce C++ Přednáška 7

PB161 Programování v jazyce C++ Přednáška 7

Přizpůsobení JSTL pro Google App Engine Datastore

TÉMATICKÝ OKRUH TZD, DIS a TIS

Backup & recovery, SQL Server Agent, Alerts Jiří Tomeš

MBI - technologická realizace modelu

Jazyk C# - přístup k datům

Databáze 2011/2012 T-SQL - kurzory, funkce. RNDr.David Hoksza, Ph.D.

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

8 Třídy, objekty, metody, předávání argumentů metod

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 26.3.

PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK

Vytváření a použití knihoven tříd

Úvod do programovacích jazyků (Java)

Architektury informačních systémů

BIOMEDICÍNSKÝ SYSTÉM PRO AGENTURY DOMÁCÍ PÉČE. Ondřej Krejcar, Dalibor Janckulík, Leona Motalová

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče.

Programování II. Návrh programu I 2018/19

Design Patterns. Tomáš Herceg Microsoft MVP (ASP.NET)

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

C# - Databáze úvod, ADO.NET. Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí

Srovnání SQL serverů. Škálovatelnost a výkon. Express Workgroup Standard Enterprise Poznámky. Počet CPU bez limitu Obsahuje podporu

OBJECT DEFINITION LANGUAGE. Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013

NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Operátory ROLLUP a CUBE

8.2 Používání a tvorba databází

Objektově orientované programování

Tvorba informačních systémů

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Návrh a tvorba WWW stránek 1/14. PHP a databáze

SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ

Vývoj informačních systémů. Přehled témat a úkolů

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Compatibility List. GORDIC spol. s r. o. Verze

Platforma Java. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, / 15

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA

Uklízení odpadků a analýza úniku

Databáze II. 1. přednáška. Helena Palovská

Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

Reaktivní programování v.net

Architektury informačních systémů

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

Obsah. Úvod 9. Úvod do Office Seznámení s Office Vylepšení programu Access XML 13 Inteligentní značky 14

Databáze I. Přednáška 4

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 12.2.

Transkript:

.NET v SQL Serveru NDBI039 Jan Drozen http://www.ms.mff.cuni.cz/~drozenj

Platforma.NET poprvé v roce 2002 v1.0 jednotná softwarová platforma pro PC/web/mobilní zařízení managed (garbage collected) prostředí CLR Common Language Runtime jazyky podle CLS C#, VB.NET, J#, F#, přednášky Jazyk C# a platforma.net Pokročilé programování pro platformu.net I, II

Motivace Klient Server CLR CTS, strongtyping, exception handling, etc ADO.NET computing ADO.NET DB ENGINE

CLR integrace Klient Server generic client DB ENGINE.NET assembly JIT CLR CTS, strongtyping, exception handling, etc

Výhody integrace CLR SQL Server 2005: nahrazení Extended stored procedures (C/C++) větší výrazová síla možnost volby TSQL/.NET možnost volby jazyka.net ušetřený traffic využívá se kapacita serveru

Použití CLR SQL typicky pro složitější výpočty možnost multi-thread zpracování objektový přístup možnost připojení k další DB pomalejší při použití, které je přirozené pro TSQL

Pod pokličkou SQL Server threading,scheduling memory management synchronization mapping CLR APP domain managed threads memory allocation, GC low level calls

CLR SQL objekty na CLR můžeme provozovat: stored-procedures scalar-valued functions table-valued functions aggregate functions user-defined types triggers

CLR.NET objekty objektová reprezentace: stored-procedures <- public static method scalar-valued functions <- public static method table-valued functions <- public static method aggregate functions <- class, structure user-defined types <- class, structure triggers <- public static method

Co je třeba - I SQL Server >= 2005 povolené použití CLR: EXEC sp_configure 'clr enabled', '1' GO RECONFIGURE GO

Co je třeba - II vytvořit assembly podle dobře formátovaného kódu cílové platformy.net frameworku: <2012 implicitně nejspíš 2.0 Dobrman: SQL Server.NET Framework SQL Server 2005 2.0 SQL Server 2008 express 2.0 SP2 SQL Server 2008, WS 2003 (64b), IA-64 2.0 SP2 SQL Server 2008 (zbytek) 3.5 SP1 SQL Server 2012 4.0 možnost zjistit z: sys.dm_clr_properties další: sys.dm_clr_appdomains, sys.dm_clr_loaded_assemblies,sys.dm_clr_tasks

Co je třeba - III kvůli bezpečnosti mají assembly definovanou úroveň standardně SAFE pokud přistupují k externím zdrojům nebo unmanaged kódu, jsou označeny jako EXTERNAL_ACCESS přístup k systémovým zdrojům, jako např. soubory, síť, proměnné prostředí, registry UNSAFE přístup ke zdrojům i mimo server, volání nativního kódu pro takové assembly musí být v databázi povolení: ALTER DATABASE [dbname] SET TRUSTWORTHY ON nebo assembly podepsat mít autorizovaný login

Co je třeba - IV nahrát assembly na server VS provádí automaticky klikacím způsobem přes SQL MS TSQL: CREATE ASSEMBLY [jméno] FROM [cesta] WITH PERMISSION_SET [povolení]

Co je potřeba - V definovat procedury, fce, atd. z assembly pokud nahráváme přes VS, tak nemusíme jinak TSQL: CREATE PROCEDURE [jméno] (@arg1 typ1, ) AS EXTERNAL NAME [assembly.object]

DEMO Stored procedure

Připojení používáme instanci SqlConnection klasické ADO.NET ctor public SqlConnection(string connectionstring) použití unmanaged zdrojů, implementuje IDisposable proto použítí using bloku connection string? buď úplný (regular connection) DATA SOURCE=[server];INITIAL CATALOG=[db] ;USER ID=[uname];PASSWORD=[passwd] DATA SOURCE=[server];INITIAL CATALOG=[db] ;INTEGRATED SECURITY=SSPI DATA SOURCE=[server];INITIAL CATALOG=[db] ;TRUSTED_CONNECTION=TRUE nebo použití stávajícího připojení (context connection) CONTEXT CONNECTION=TRUE

Regular vs. context connection regular context omezení context nemůžeme použít SqlBulkCopy žádné další upřesnění connection stringu DataSource vrací null a další regular nepodporuje asynchronní zpracování vzhledem k internímu serveru

stored procedures jsou statické atribut Microsoft.SqlServer.Server.SqlProcedure návratová hodnota void

DEMO user defined function (scalar)

user defined functions (scalar) jsou statické atribut SqlFunction(DataAccess = DataAccessKind.Read) návratová hodnota.net typu odpovídající nějakému SQL typu

DEMO user defined function (table valued)

user defined functions (table valued) jsou statické atribut SqlFunction( DataAccess = DataAccessKind.Read, FillRowMethodName = method", TableDefinition= table_def") návratová hodnota.net typu implementujícího IEnumerable potřeba mít statickou metodu methodname(object obj, out col1, out col2, ) TSQL definice: CREATE FUNCTION [name] (@arg1,@arg2, ) RETURN TABLE (argg1,argg2, ) AS EXTERNAL nemůže vracet ne-unicode varchar a timestamp

DEMO user-defined aggregate

user defined aggregates řádky hodnota provádí výpočet nad množinou řádků a vrací jednu hodnotu atribut SqlUserDefinedAggregate 4 metody (instanční): public void Init public void Accumulate public void Merge public type Terminate TSQL definice: CREATE AGGREGATE [name] (@input [type]) RETURNS [type] EXTERNAL NAME

DEMO user-defined type

user defined types atribut SqlUserDefinedType volitelně Serializable musí implementovat INullable musí implementovat public metody Parse a ToString musí implementovat IXmlSerializable nebo všechny public položky musí být XmlSerializable nebo musí být označeny XmlIgnore parametrem jména public položek kratší než 128 znaků a musí odpovídat konvencím SQL serveru statické položky musí být konstanty nebo read-only

Debuging dá se povolit z VS možnost i z MS při krokování postupuje přes příkazy posílané na server (dynamic SQL) nepodporuje SQL Server Express

Shrnutí SQL server umožňuje implementovat v rámci procedur, UDF, atd. takřka cokoli můžeme část aplikační logiky převést na server může ale nemusí být rychlejší managed prostředí zdroje mapované na zdroje SQL serveru regular vs. context connection

LINQ

LINQ Language INtegrated Query dotazovací jazyk C# 3.0, VB9,.NET 3.5 zkrácení enumerace varianty podle cíle dotazu LINQ to objects SQL XML implementace pomocí extension metod

LINQ to SQL odstíní programátora.net od SQL není potřeba SqlCommand, apod. mapuje objekty na entity RD metody na funkce a procedury potřeba mít podpůrné datové struktury O/R Designer (VS) atributy Table, Column více se používá entity-framework LINQ to entities

DEMO LINQ to SQL

Zdroje MSDN documentation SQL Server books online Programming Microsoft SQL Server 2012 Lobel, Leonard G. Brust, Andrew J. TALLAN,2012

KONEC