Warstwy aplikacji sieciowych

Slides:



Advertisements
Podobne prezentacje
Java Data Objects.
Advertisements

Projekt Do kariery na skrzydłach – studiuj Aviation Management Projekt współfinansowany ze ś rodków Europejskiego Funduszu Społecznego. Biuro projektu:
Równoległe kwerendy danych
Java Server Faces Tomasz Nowak.
ALLEGRO PIERWSZA GRA: WYŚCIG
C++ w Objectivity Marcin Michalak s1744. Pomocne pakiety: Data Definition Language (DDL). Standard Template Library (STL). Active Schema.
Wybrane elementy C#, BCL
Technologia .Net Bazy danych część 2..
SQL Server Native XML Web Services
Copyright for librarians - a presentation of new education offer for librarians Agenda: The idea of the project Course content How to use an e-learning.
Java vs C# Michał Prządka Tomasz Nowak
GUI Struktury Spotkanie integracyjne Nazwa wydziału: EAIiE Nazwa katedry: Informatyka Miejsce i data prezentacji: Kraków,
ADO.NET · tworzenie i przetwarzanie lokalnych relacyjnych baz danych
BIRT.
Dzielenie relacyjne / Relational Division
Testowanie oprogramowania metodą badania pokrycia kodu
LINQ - Language Integrated Query Unifikacja dostępu do danych Uproszczone odpytywanie obiektów, daych i XML poprzez integrację zapytań z językiem programownia.
Łukasz Monkiewicz.
142 JAVA – sterowanie i wątki public class A20 extends javax.swing.JApplet implements ActionListener { private int licznik = 0; private JTextField t =
Aplikacje sieciowe Obiekty typu Socket. ServerSocket ClientSocket Socket ClientSocket Socket.
„Tworzenie aplikacji sieciowych w języku Java”
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Networking Prezentacja.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Exceptions Prezentacja.
Technologia.Net Bazy danych. Technologia ADO.Net Służy do dostarczania danych z rożnych źródeł (baz danych) do aplikacji Jest produktem Microsoft Umożliwia.
Technologia ASP.NET.
MS SQL SERVER udział w rynku. Source: Gartner Dataquest (May 2006) Company Market Share (%) Market Share (%) Growth (%) Oracle6, ,
Język C# Copyright, 2004 © Adam Czajka.
MS ASP.NET 2005/2006
Przestrzeń System podstawowe klasy i klasy bazowe.
1 Building Integration System - Training Internal | ST-IST/PRM1 | 02/2008 | © Robert Bosch GmbH All rights reserved, also regarding any disposal,
Tadeusz Janasiewicz IT Group, Tadeusz Janasiewicz, WSUS, IT Group, r.
Najpopularniejsze aplikacje ASP.NET i PHP.
Monika Rokosik Katarzyna Rola. Wykrywanie kursu akcji poniżej dołka znajdującego się pomiędzy dwoma sąsiednimi górkami, z których późniejsza jest mniejsza.
PLATFORMY TECHNOLOGICZNE LINQ mgr inż. Tomasz Gawron.
Rozproszone transakcje z wykorzystaniem usługi Service Broker w SQL Server 2008 R2 Andrzej Ptasznik.
REKURENCJA.
Porysujmy trochę czyli Łączenie SQLa, AutoCADa i Delphi
LINQ (Language-INtegrated Query) Marcin Bohdziewicz s4070.
Realizacja aplikacji internetowych
Dr inż. Piotr Czapiewski. Overloading Znaczenie inne niż w większości języków obiektowych Metoda dynamicznego tworzenia pól i metod Magiczne metody.
Krzysztof Manuszewski
Damian Wojdan Kraków,
Asynchroniczność w Windows 8 Jakub Binkowski. O mnie Jakub Binkowski Lead.NET Developer.
Click to show the screen.
db4o Kacper Skory Marcin Talarek
PIO 2_2, Zofia Kruczkiewicz1 Wykład 2 – część druga Iteracyjno-rozwojowy cykl oprogramowania 2.
PIO. Autor -Zofia Kruczkiewicz1 Wykład 1-część druga Wstęp do inżynierii oprogramowania. Cykle rozwoju oprogramowania (część biznesowa aplikacji) iteracyjno-rozwojowy.
PIO. Autor -Zofia Kruczkiewicz1 Wykład 1-część druga Wstęp do inżynierii oprogramowania. Cykle rozwoju oprogramowania (część biznesowa aplikacji) iteracyjno-rozwojowy.
Podstawy programowania
Cz.8 Zdarzenia. Refleksja – przypomnienie Event Programowanie zdarzeniowe Do dzieła!
Cz.5. Podsumowanie zadania Kolekcje Iteratory Generics Linq.
Krótka historia asynchroniczności w.NET Jakub Binkowski.
Warsztaty C# Część 2 Grzegorz Piotrowski Grupa.NET PO
A. Jędryczkowski – 2006 ©. Tablica to struktura danych zawierająca zbiór obiektów tego samego typu i odpowiada matematycznemu pojęciu wektora (tablica.
Pliki elementowe – A. Jędryczkowski © 2007 Turbo Pascal umożliwia wykorzystanie w programach plików elementowych. Pliki takie zawierają informację zakodowaną
Warsztaty użytkowników programu PLANS – Karwia06 Język makropoleceń JMP programu PLANS Część I mgr inż. Tomasz Zdun.
- przykłady.
Rozdział 3: Bezpieczeństwo w sieci opartej na systemie Windows 2000.
Komtech Sp. z o.o. Magic Janusz ROŻEJ.
Magic Janusz ROŻEJ Komtech Sp. z o.o.
TROCHĘ HISTORII Marek Zając PO CO UŻYWAĆ OPENCL? Marek Zając.
Silverlight 4 dla Windows Phone 7
1.
Bazy Danych Programowanie w SQL Wojciech St. Mościbrodzki
Wydział Elektroniki Kierunek: AiR Zaawansowane metody programowania Wykład 6.
Responsywne aplikacje w Windows 8 i.NET 4.5 Jakub Binkowski.
Wydział Elektroniki Kierunek: AiR Zaawansowane metody programowania Wykład 5.
Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.
Technologia.Net Bazy danych. Technologia ADO.Net Służy do dostarczania danych z rożnych źródeł (baz danych) do aplikacji Jest produktem Microsoft Umożliwia.
Zapytania ( 3.0 ) wyrażenia zapytaniowe - querry expressions przestrzeń nazw LINQ - Language-Integrated Query 3 etapy : 1. określenie źródła danych, 2.
Zapis prezentacji:

Warstwy aplikacji sieciowych Aplikacje sieciowe Warstwy aplikacji sieciowych

Architektura warstwowa Warstwa prezentacji Warstwa logiki (aplikacji) Warstwa danych

Warstwa prezentacji Strona aspx Arkusze stylów css Kontrolki wizualne

Warstwa logiki (aplikacji) Własne obiekty Obiekty z bibliotek .NET Obiekty komunikacji ze źródłem danych public partial class Kontakt : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void SendMailBtn_Click(object sender, EventArgs e) { MailMessage mail = new MailMessage( MailFromInp.Text,ConfigurationManager.AppSettings["contactPersonMailAdress"] , MailSubjectInp.Text, MailBodyInp.Text ); SmtpClient smpt = new SmtpClient(); smpt.Send(mail); }

Warstwa danych

Bazy danych Access, MS Sql, inne Źródła danych Bazy danych Access, MS Sql, inne Pliki XML - formaty typu SiteMap - inne formaty XML Obiekty (tablice, kolekcje itp..) Pliki tekstowe i inne

Podstawowe obiekty Bazodanowe SqlCommand SqlConnection ConnectionString

Warstwowy schemat pracy ze źródłem danych <TeacherList> <teacher name="Paweł Fałat" certificates="MCP, MCAD"/> <teacher name="Kornel Warwas" certificates="MCP, MCAD"/> <teacher name="Szymon Tegler" certificates="MCP, MCAD"/> <teacher name="Andrzej Polański" certificates="MCP, MCAD"/> <teacher name="Tomasz Gancarczyk" certificates="MCP, MCSE"/> </TeacherList>

Obiekty typu DataSource

Tworzenie Menu: Źródło dokument typu SiteMap <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > <siteMapNode url="Default.aspx" title="Home" description=""> <siteMapNode url="~/ConferenceCommity.aspx" title="Conference Commity" description="" /> <siteMapNode url="~/ScientificCommity.aspx" title="Scientific Commity" description="" /> <siteMapNode url="~/Null3.aspx" title="Comunicates" description="" > <siteMapNode url="~/Null3a.aspx" title="Comunicate nr 1" description="" /> <siteMapNode url="~/Null3b.aspx" title="Comunicate nr 2" description="" /> <siteMapNode url="~/Null3c.aspx" title="Comunicate nr 2" description="" /> </siteMapNode> ... </siteMap>

Źródło danych: dokument XML <TeacherList> <teacher name="Paweł Fałat" certificates="MCP, MCAD"/> <teacher name="Kornel Warwas" certificates="MCP, MCAD"/> <teacher name="Szymon Tegler" certificates="MCP, MCAD"/> <teacher name="Andrzej Polański" certificates="MCP, MCAD"/> <teacher name="Tomasz Gancarczyk" certificates="MCP, MCSE"/> </TeacherList>

SqlDataSource

SqlDataSource: funkcje operujące na danych Select() Update() Insert() Delete() Wykorzystują przygotowane obiekty typu SqlCommand połączone z kolekcjami parametrów zapytania: SelectQuery InsertQuery UpdateQuery DeleteQuery

SqlCommand

SqlCommand przykład kodu using System.Data; using System.Data.SqlClient; public static String GetUserNameForReview(String ReviewID) { SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConfernceDBConnectionString"].ConnectionString); SqlCommand getUserNameCommand = new SqlCommand(); getUserNameCommand.CommandType = CommandType.Text;//CommandType.StoredProcedure// TableDirect getUserNameCommand.Parameters.Add("@ReviewID", SqlDbType.NVarChar); getUserNameCommand.Connection = connection; getUserNameCommand.Parameters["@ReviewID"].Value = ReviewID; getUserNameCommand.CommandText = "SELECT aspnet_Users.UserName" + " FROM Review INNER JOIN aspnet_Users" + " ON Review.ReviewerID = aspnet_Users.UserId" + " WHERE (Review.ReviewID = @ReviewID)"; connection.Open(); //getUserNameCommand.ExecuteXmlReader(); ExecuteReader(); ExecuteNonQuery() ; string UserName = getUserNameCommand.ExecuteScalar().ToString(); connection.Close(); if (UserName == null) return "NullUser"; return UserName; }

DataSet Może odzwierciedlić strukturę bazy danych z tabelami i związkami między nimi. Umożliwia wykorzystanie i modyfikację tej struktury Typed DataSet Na podstawie definicji tabel tworzy się plik xsd zawierający strukturę obiektów. Na podstawie tego pliku generowana jest klasa(y) wykorzystywane w trakcie tworzenia programu - Wsparcie dla Intelisense - Sprawdzanie składni w trakcie kompilacji Untyped Dataset Do dynamicznego ładowania nie zdefiniowanej wstępnie struktury tabel

DataSet Designer

DataSet Plik xsd <?xml version="1.0" encoding="utf-8"?> <xs:schema id="UserListDataSet" targetNamespace="http://tempuri.org/UserListDataSet.xsd" xmlns:mstns="http://tempuri.org/UserListDataSet.xsd" xmlns="http://tempuri.org/UserListDataSet.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop" attributeFormDefault="qualified" elementFormDefault="qualified"> <xs:annotation> <xs:appinfo source="urn:schemas-microsoft-com:xml-msdatasource"> <DataSource DefaultConnectionIndex="0" FunctionsComponentName="QueriesTableAdapter" Modifier="AutoLayout, AnsiClass, Class, Public" SchemaSerializationMode="IncludeSchema" xmlns="urn:schemas-microsoft-com:xml-msdatasource"> <Connections> <Connection AppSettingsObjectName="Web.config" AppSettingsPropertyName="ConfernceDBConnectionString" ConnectionStringObject="" IsAppSettingsProperty="true" Modifier="Assembly" Name="ConfernceDBConnectionString (Web.config)" ParameterPrefix="@" PropertyReference="AppConfig.System.Configuration.ConfigurationManager.0.ConnectionStrings.ConfernceDBConnectionString.ConnectionString" Provider="System.Data.SqlClient" /> </Connections> <Tables> <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="aspnet_UsersTableAdapter" GeneratorDataComponentClassName="aspnet_UsersTableAdapter" Name="aspnet_Users" UserDataComponentName="aspnet_UsersTableAdapter"> <MainSource> <DbSource ConnectionRef="ConfernceDBConnectionString (Web.config)" DbObjectName="dbo.aspnet_Users" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetData" UserSourceName="Fill"> <DeleteCommand> <DbCommand CommandType="Text" ModifiedByUser="false"> <CommandText>DELETE FROM [dbo].[aspnet_Users] WHERE (([ApplicationId] = @Original_ApplicationId) AND ([LoweredUserName] = @Original_LoweredUserName))</CommandText> <Parameters> <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Guid" Direction="Input" ParameterName="@Original_ApplicationId" Precision="0" ProviderType="UniqueIdentifier" Scale="0" Size="0" SourceColumn="ApplicationId" SourceColumnNullMapping="false" SourceVersion="Original" /> <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Original_LoweredUserName" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="LoweredUserName" SourceColumnNullMapping="false" SourceVersion="Original" /> </Parameters> </DbCommand> </DeleteCommand> .....

DataSet Przykład kodu (źródło: msdn) // Assumes a valid SqlConnection object named connection. SqlDataAdapter customerAdapter = new SqlDataAdapter( "SELECT CustomerID, CompanyName, Phone FROM Customers", connection); SqlDataAdapter orderAdapter = new SqlDataAdapter( "SELECT OrderID, CustomerID, EmployeeID, OrderAdapter FROM Orders", connection); // Populate a strongly typed DataSet. connection.Open(); CustomerDataSet customers = new CustomerDataSet(); customerAdapter.Fill(customers, "Customers"); orderAdapter.Fill(customers, "Orders"); connection.Close(); // Add a strongly typed event. customers.Customers.CustomerChanged += new CustomerDataSet.CustomerChangeEventHandler(OnCustomerChanged); // Add a strongly typed DataRow. CustomerDataSet.Customer newCustomer = customers.Customers.NewCustomeromer(); newCustomer.CustomerID = "NEW01"; newCustomer.CompanyName = "My New Company"; customers.Customers.AddCustomer(newCustomer);

LINQ Language-Integrated Query static void Main() { // The Three Parts of a LINQ Query: // 1. Data source. int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 }; // 2. Query creation. // numQuery is an IEnumerable<int> var numQuery = from num in numbers where (num % 2) == 0 select num; // 3. Query execution. foreach (int num in numQuery) { Console.Write("{0,1} ", num); } } Źródło MSDN

LINQ to SQL // Northwnd inherits from System.Data.Linq.DataContext. Northwnd nw = new Northwnd(@"northwnd.mdf"); var companyNameQuery = from cust in nw.Customers where cust.City == "London" select cust.CompanyName; foreach (var customer in companyNameQuery) { Console.WriteLine(customer); } Źródło MSDN

LINQ to XML XElement srcTree = new XElement("Root", new XElement("Element1", 1), new XElement("Element2", 2), new XElement("Element3", 3), new XElement("Element4", 4), new XElement("Element5", 5) ); XElement xmlTree = new XElement("Root", new XElement("Child1", 1), new XElement("Child2", 2), new XElement("Child3", 3), new XElement("Child4", 4), new XElement("Child5", 5) ); xmlTree.Add(new XElement("NewChild", "new content")); xmlTree.Add( from el in srcTree.Elements() where (int)el > 3 select el ); <Root> <Child1>1</Child1> <Child2>2</Child2> <Child3>3</Child3> <Child4>4</Child4> <Child5>5</Child5> <NewChild>new content</NewChild> <Element4>4</Element4> <Element5>5</Element5> </Root> Źródło MSDN