MVVM Light Toolkit Przewodnik krok po kroku
|
|
- Ewa Danuta Szymańska
- 6 lat temu
- Przeglądów:
Transkrypt
1 Julita Borkowska MVVM Light Toolkit Przewodnik krok po kroku W celu lepszego zrozumienia elementów MVVM Light Toolkit przedstawionych w prezentacji, zostanie poniżej krok po kroku napisany program losujący sekretną liczbę, której odgadnięcie będzie zadaniem dla użytkownika. Zaczynamy od instalacji dodatku: Otwieramy Visual Studio, wybieramy Tools -> Extensions&Updates -> Online -> wpisujemy MVVM Light Toolkit i pobieramy, a następnie instalujemy. Następnie tworzymy nowy projekt i wybieramy MVVMLight (WPF451). Po stworzeniu projektu mamy już wygenerowane dwie klasy: MainViewModel.cs oraz ViewModelLocator.cs oraz pliki XAML: App.xaml i MainWindow.xaml. Klasa MainViewModel odpowiada za przechowywanie danych i odpowiednie reagowanie na zachowania użytkownika. Dodaję właściwość: - SecretNumber (typu int) reprezentuje ona liczbę, która należy odgadnąć; - Suggestion (typu string) - w niej zapisywane będą sugestie dotyczące podanej przez użytkownika liczby; - IsInProgress (typu bool) określa, czy użytkownik jest w danej chwili w trakcie zgadywania; - IsSolved (typu bool) określa, czy sekretna liczba została odgadnięta; Właściwości IsInProgress oraz IsSolved posłużą do pokazywania i ukrywania odpowiednich komunikatów).
2 We wszystkich powyższych podczas ustawiania wartości zostanie wywołana funkcja RaisePropertyChanged() z klasy bazowej (ViewModelBase), która opakowuje funkcjonalność interfejsu INotifyPropertyChanged. Interfejs ten ma zadanie informować klienta, że wartość właściwości (obiektu) uległa zmianie. Dzięki temu możemy korzystać z DataBindingu: przy każdej zmianie wartości zmiennej (zarówno w kodzie jak i przez użytkownika), jej wartość będzie na bieżąco aktualizowana. Aby oszczędzić sobie konieczności każdorazowego wpisywania powtarzalnego kodu, najlepiej jest skorzystać ze snippetów (czyli właśnie takich gotowych fragmentów kodu). W celu ich zastosowania należy w nowej linii wpisać mvvminpc, a następnie nacisnąć TAB pojawi się pożądany fragment kodu - konieczne jest już tylko podanie nazwy. #region SecretNumber Property public const string SecretNumberPropertyName = "SecretNumber"; private int _secretnumber = 0; public int SecretNumber return _secretnumber; set if (_secretnumber == value) return; _secretnumber = value; RaisePropertyChanged(SecretNumberPropertyName); #region Suggestion public const string SuggestionPropertyName = "Suggestion"; private string _suggestion = ""; public string Suggestion return _suggestion; set if (_suggestion == value) return; _suggestion = value; RaisePropertyChanged(SuggestionPropertyName);
3 #region IsInProgress Property public const string IsInProgressPropertyName = "IsInProgress"; private bool _isinprogress = false; public bool IsInProgress return _isinprogress; set if (_isinprogress == value) return; _isinprogress = value; RaisePropertyChanged(IsInProgressPropertyName); #region IsSolved Property public const string IsSolvedPropertyName = "IsSolved"; private bool _issolved = false; public bool IsSolved return _issolved; set if (_issolved == value) return; _issolved = value; RaisePropertyChanged(IsSolvedPropertyName); Tworzenie komend Zostaną teraz stworzone dwie komendy: - Start mająca za zadanie wylosować nową liczbę do odgadnięcia oraz stawienie właściwości określających stan zabawy na odpowiednie wartości logiczne; - CheckGuess mającą za zadanie sprawdzenie, czy podana przez użytkownika liczba jest prawidłowa oraz ewentualne podanie wskazówek, jeśli nie. Za reprezentowanie komend w MVVM Light Toolkit odpowiada klasa RelayCommand. Opakowuje ona interfejs ICommand, dając jednocześnie wygodny sposób na tworzenie nowych komend (nie
4 trzeba więc zagłębiać się w ich implementację). Istnieje również generyczna wersja RelayCommand, która pozwala na przekazywanie parametru do komendy. Przy tworzeniu kodu dla komendy Start możemy skorzystać ze snippetu mvvmrelay, a dla komendy CheckGuess mvvmrelaygeneric. #region Start private RelayCommand _startcommand; public RelayCommand Start if (_startcommand == null) _startcommand = new RelayCommand( () => SecretNumber = rand.next(10) + 1; IsSolved = false; IsInProgress = true; Suggestion = ""; ); return _startcommand; #region CheckGuess Command private RelayCommand<int> _checkguess; public RelayCommand<int> CheckGuess if(_checkguess == null) _checkguess = new RelayCommand<int>( x => if (x == _secretnumber) IsInProgress = false; IsSolved = true; else if (x < _secretnumber) Suggestion = "Liczba jest za mala."; else if (x > _secretnumber) Suggestion = "Liczba jest za duza."; ); return _checkguess; Interfejs użytkownika Aby możliwe było zgadywanie liczby, podawanie wskazówek oraz wyniku zgadywania stworzono interfejs widoczny na poniższym obrazku:
5 Generuje go poniższy kod XAML, umieszczony w pliku MainWindow.xaml: <Window x:class="projekt05.mainwindow" xmlns=" xmlns:x=" xmlns:d=" xmlns:mc=" xmlns:local="clr-namespace:projekt05" xmlns:ignore=" mc:ignorable="d ignore" Height="300" Width="300" Title="MVVM Light Application" DataContext="Binding Main, Source=StaticResource Locator"> <Window.Resources> <BooleanToVisibilityConverter x:key="booleantovisibilityconverter"/> <local:stringtointconverter x:key="stringtointconverter"/> </Window.Resources> <StackPanel> <StackPanel x:name="spsecret" Orientation="Horizontal" Height="16" Visibility="Binding IsSolved, Converter=StaticResource BooleanToVisibilityConverter, Mode=OneWay"> <TextBlock Height="16" TextWrapping="Wrap" Text="Gratulacje! Sekretna liczba to: " /> <TextBlock x:name="txblsecret" Height="16" TextAlignment="Center" Margin="20,0,0,0" TextWrapping="Wrap" Text="Binding SecretNumber"/> <Button x:name="btnstart" Content="Start" Margin="0,10,0,0" Command="Binding Start, Mode=Default"/> <StackPanel x:name="spguess" Visibility="Binding IsInProgress, Converter=StaticResource BooleanToVisibilityConverter, Mode=OneWay"> <StackPanel Margin="0,10,0,0" Orientation="Horizontal"> <TextBlock Margin="8,0,0,0" TextWrapping="Wrap" Text="Podaj liczbę: " /> <TextBox x:name="txbuserguess" Height="24" TextAlignment="Center" Margin="25,0,0,0" TextWrapping="Wrap" Text="0" Width="50" HorizontalAlignment="Center" VerticalAlignment="Center"/>
6 <Button x:name="btncheck" Content="Sprawdź" Margin="0,10,0,0" Command="Binding CheckGuess" CommandParameter="Binding Text, Converter=StaticResource StringToIntConverter, ElementName=txbUserGuess"/> <TextBlock x:name="txblsuggestion" Margin="0,15,0,0" TextWrapping="Wrap" TextAlignment="Center" Text="Binding Suggestion"/> </Window> Podczas analizy powyższego kodu szczególną uwagę należy zwrócić na linijki, w których pojawia się słowo Binding. Dotyczy ono bowiem wspomnianej na początku tego opracowania możliwości DataBindingu, czyli tworzenia odpowiednich powiązań między widokiem i obiektem ViewModel. Jeśli chodzi o wiązanie właściwości lub komend, zastosowanie DataBinding jest bardzo proste: <Button x:name="btnstart" Content="Start" Command="Binding Start"/> Podobnie jak dla przycisku Start rozpoczynającego grę wygląda to dla pól tekstowych txblsecret oraz txblsuggestion, które są powiązane z właściwościami SecretNumber oraz Suggestion. Powiązanie jest nieco trudniejsze w przypadku przycisku, którym użytkownik sprawdza, czy odgadł sekretną liczbę: <Button x:name="btncheck" Content="Sprawdź" Command="Binding CheckGuess" CommandParameter="Binding Text, Converter=StaticResource StringToIntConverter, ElementName=txbUserGuess"/> Jak widzimy powyżej, w chwili naciśnięcia przycisku, Binding ustawia wykonywaną komendę na CheckGuess i podaje właściwość Text pola tekstowego txbuserguess jako jej parametr. Problemem jest jednak to, iż właściwość Text jest typu string, a komenda CheckGuess przyjmuje jako parametr obiekt typu int. Konieczna jest więc konwersja pomiędzy oba typami. Stworzono do tego celu obiekt StringToIntConverter dokonujący zmiany typów w obie strony. Dziedziczy on po interfejsie IValueConverter i implementuje jego dwie metody: Convert oraz ConvertBack. [ValueConversion(typeof(string), typeof(int))] public class StringToIntConverter : IValueConverter #region IValueConverter Members public object Convert(object value, Type tartype, object parameter, System.Globalization.CultureInfo culture) string str = value.tostring(); if (string.isnullorempty(str)) return 0; else try int result = 0; int.tryparse(str, out result); return result; catch (ArgumentException)
7 return 0; public object ConvertBack(object value, Type tartype, object parameter, System.Globalization.CultureInfo culture) return value.tostring(); Aby móc korzystać z nowo stworzonego konwertera, dodajemy go jako zasób obecnego widoku: <Window.Resources> <local:stringtointconverter x:key="stringtointconverter"/> </Window.Resources> Aby użytkownik nie dowiedział się jaka jest nasza sekretna liczba, należy prawidłowo ukryć oba panele. W tym celu należy powiązać ich właściwości Visibility z odpowiednimi właściwościami obiektu ViewModel: IsInProgress oraz IsSolved: <StackPanel x:name="spsecret" Visibility="Binding IsSolved, Converter=StaticResource BooleanToVisibilityConverter, Mode=OneWay"> <StackPanel x:name="spguess" Visibility="Binding IsInProgress, Converter=StaticResource BooleanToVisibilityConverter, Mode=OneWay"> Wykorzystany w powyższych fragmentach kodu konwerter BooleanToVisibilityConverter jest dostępny domyślnie, trzeba tylko dodać go jako zasób do obecnego widoku, podobnie jak uczyniono to z konwerterem StringToIntConverter. EventToCommand W kontrolkach WPF a komendy podpinane są domyślnie do jednego z góry przewidzianego zdarzenia, np. dla przycisku jest to odpowiednik onclick. Nie ma możliwości podłączenia komendy do innych zdarzeń. Dzięki MVVM Light Toolkit, istnieje możliwość podłączenia komend z obiektu ViewModel do dowolnych zdarzeń kontrolki bez angażowania do tego jakiegokolwiek Code Behind wszystko pozostaje więc w zgodzie z założeniami MVVM. <Window x:class="projekt05.mainwindow" xmlns=" xmlns:x=" xmlns:d=" xmlns:mc=" xmlns:vm="clr-namespace:projekt05" xmlns:i=" xmlns:galasoft_mvvmlight_command=" xmlns:ignore=" mc:ignorable="d ignore" Height="300" Width="300" Title="MVVM Light Application" DataContext="Binding Main, Source=StaticResource Locator"> <Window.Resources> <BooleanToVisibilityConverter x:key="booleantovisibilityconverter"/> <vm:stringtointconverter x:key="stringtointconverter"/>
8 </Window.Resources> <StackPanel> <StackPanel x:name="spsecret" Orientation="Horizontal" Height="16" Visibility="Binding IsSolved, Converter=StaticResource BooleanToVisibilityConverter, Mode=OneWay"> <TextBlock Height="16" TextWrapping="Wrap" Text="Gratulacje! Sekretna liczba to: " /> <TextBlock x:name="txblsecret" Height="16" TextAlignment="Center" Margin="20,0,0,0" TextWrapping="Wrap" Text="Binding SecretNumber"/> <Button x:name="btnstart" Content="Start" Margin="0,10,0,0" Command="Binding Start, Mode=Default"/> <StackPanel x:name="spguess" Visibility="Binding IsInProgress, Converter=StaticResource BooleanToVisibilityConverter, Mode=OneWay"> <StackPanel Margin="0,10,0,0" Orientation="Horizontal"> <TextBlock Margin="8,0,0,0" TextWrapping="Wrap" Text="Podaj liczbę: " /> <TextBox x:name="txbuserguess" Height="24" TextAlignment="Center" Margin="25,0,0,0" TextWrapping="Wrap" Text="0" Width="50" HorizontalAlignment="Center" VerticalAlignment="Center"> <i:interaction.triggers> <i:eventtrigger EventName="LostFocus"> <GalaSoft_MvvmLight_Command:EventToCommand Command="Binding CheckGuess, Mode=Default" CommandParameter="Binding Text, Converter=StaticResource StringToIntConverter, ElementName=txbUserGuess"/> </i:eventtrigger> </i:interaction.triggers> </TextBox> <Button x:name="btncheck" Content="Sprawdź" Margin="0,10,0,0" Command="Binding CheckGuess" CommandParameter="Binding Text, Converter=StaticResource StringToIntConverter, ElementName=txbUserGuess"/> <TextBlock x:name="txblsuggestion" Margin="0,15,0,0" TextWrapping="Wrap" TextAlignment="Center" Text="Binding Suggestion"/> </Window> W przytoczonej powyżej zawartości pliku MainWindow.xaml zaznaczono na szaro dodane fragmenty. W przykładzie do zdarzenia LostFocus podpinane jest sprawdzenie, czy podana przez użytkownika liczba jest wylosowanym sekretnym numerem umożliwia to sprawdzanie liczby zarówno za pomocą przycisku Sprawdź, jak i kliknięcia TAB na klawiaturze. Do istniejącego TextBoxa odpowiedzialnego za wprowadzanie przez użytkownika liczby podpinamy nowy event trigger. Jest to trigger reagujący na zajście zdarzenia LostFocus za pomocą jednego znacznika możemy podpiąć komendę do tego triggera (w sposób w jaki wcześniej podpięliśmy ją do przycisku). Messenger Z założenia obiekt Messenger został dodany do MVVM Light Toolkit jako narzędzie do wszechstronnej komunikacji i to nie tylko pomiędzy obiektami ViewModel, ale między dowolnymi klasami. Idea opiera się na statycznym obiekcie Messenger, który udostępnia mechanizmy do wysyłania komunikatów oraz rejestrowania akcji reagujących na konkretne komunikaty.
9 Celem zademonstrowania działania obiektu Messenger, stworzony zostanie nowy obiekt ViewModel, który będzie panelem opcji programu, posiadającym jednak tylko jedną opcję mianowicie wybór maksymalnego zakresu wartości, z jakiego można wylosować sekretną liczbę. Po zatwierdzeniu zmian zaktualizowany zostanie maksymalny zakres liczb, a dzięki DataBinding informacja o aktualnym maksymalnym zakresie zostanie odświeżona. Na początek należy dodać w projekcie nowy folder View i stworzyć w nim nowy interfejs użytkownika OptionsView.xaml (klikamy na projekcie prawym klawiszem i wybieramy Add -> User control): <UserControl x:class="projekt05.view.optionsview" xmlns=" xmlns:x=" xmlns:mc=" xmlns:d=" mc:ignorable="d" xmlns:local="clr-namespace:projekt05" d:designheight="300" d:designwidth="300"> <UserControl.Resources> <local:stringtointconverter x:key="stringtointconverter"/> </UserControl.Resources> <StackPanel> <StackPanel Orientation="Horizontal" Margin="0,10,0,0"> <TextBlock TextWrapping="Wrap" Margin="5,0,0,0" HorizontalAlignment="Center" VerticalAlignment="Center" Text="Maksymalna liczba z zakresu: "></TextBlock> <TextBox HorizontalAlignment="Center" TextWrapping="Wrap" Margin="10,0,0,0" VerticalAlignment="Center" Name="txbMaxNumber" Text="10"></TextBox> <Button Content="Zapisz opcje" Margin="0,10,0,0" VerticalAlignment="Center" Command="Binding SaveOptions" CommandParameter="Binding Text, Converter=StaticResource StringToIntConverter, ElementName=txbMaxNumber"/> </UserControl> Następnie tworzymy odpowiadający temu widokowi obiekt ViewModel o nazwie OptionsViewModel.cs (dziedziczący oczywiście po ViewModelBase). Dodajemy jedną prostą komendę SaveOptions, która zostanie podpięta do przycisku Zapisz opcje : public class OptionsViewModel : ViewModelBase #region Save Options Command private RelayCommand<int> _savecommand; public RelayCommand<int> SaveOptions if (_savecommand == null) _savecommand = new RelayCommand<int>( x => Messenger.Default.Send<ChangeOptionsMessage>(new ChangeOptionsMessage(x)); ); return _savecommand;
10 public OptionsViewModel() Jej jedynym przeznaczeniem jest, aby za pomocą obiektu Messenger przesłać dalej otrzymany argument. Wynika on z DataBindingu samego przycisku i jest po prostu zawartością pola tekstowego odpowiadającego za maksymalną liczbę (odpowiednio przekonwertowaną na liczbę całkowitą): <Button Content="Zapisz opcje" Command="Binding SaveOptions" CommandParameter="Binding Text, Converter=StaticResource StringToIntConverter, ElementName=txbMaxNumber"/> Przesyłany komunikat jest typu ChangeOptionsMessage, który to jest naszym własnym typem komunikatu dzięki temu możemy dostosować go tak, aby zawierał tylko takie informacje, jakich potrzebujemy w aktualnym scenariuszu. Dla wygody dziedziczy on po typie MessageBase z MVVM Light Toolkit i zawiera jedną dodatkową właściwość przechowującą maksymalną liczbę do wylosowania. Dodajemy więc do projektu folder Messages, a w nim klasę ChangeOptionsMessages.cs: public class ChangeOptionsMessage : MessageBase public int MaxRange ; set; public ChangeOptionsMessage(int _maxrange) MaxRange = _maxrange; Teraz musimy jeszcze odebrać wysłany komunikat w głównym oknie. Zmieniamy więc plik MainViewModel.cs dodając właściwość MaxRange, rejestrując w konstruktorze akcję reagującą na wysłanie komunikatu typu ChangeOptionsMessage oraz pisząc prosta funkcję obsługującą komunikat HandleChangeOptions() (zmienione elementy zostały zaznaczone na szaro): public class MainViewModel : ViewModelBase private Random rand = new Random(); #region SecretNumberProperty #region Suggestion Property #region IsInProgress Property #region MaxRange Property public const string MaxRangePropertyName = "MaxRange"; private int _maxrange = 10; public int MaxRange return _maxrange;
11 set if (_maxrange == value) return; //var oldvalue = _maxrange; _maxrange = value; // Update bindings, no broadcast RaisePropertyChanged(MaxRangePropertyName); #region IsSolved #region Start #region CheckGuess Command public MainViewModel()//IDataService dataservice) Messenger.Default.Register<Messages.ChangeOptionsMessage>(this, HandleChangeOptions); if (IsInDesignMode) IsSolved = true; IsInProgress = true; else // Code runs "for real": Connect to service, etc... private void initguess() SecretNumber = rand.next(maxrange) + 1; IsSolved = false; IsInProgress = true; Suggestion = ""; private void HandleChangeOptions(Messages.ChangeOptionsMessage m) this.maxrange = m.maxrange; initguess(); Funkcja initguess() rozpoczyna turę zgadywania z już zmienionym zakresem. Na koniec pozostaje nam jeszcze wprowadzenie drobnych zmian w pliku MainView.xaml, tak, aby możliwe było zobaczenie nowych elementów widoku (zmienione elementy zaznaczono na szaro): <Window x:class="projekt05.mainwindow" xmlns=" xmlns:x=" xmlns:d=" xmlns:mc=" xmlns:local="clr-namespace:projekt05" xmlns:localview="clr-namespace:projekt05.view" xmlns:i="
12 xmlns:galasoft_mvvmlight_command=" xmlns:ignore=" mc:ignorable="d ignore" Height="300" Width="300" Title="MVVM Light Application" DataContext="Binding Main, Source=StaticResource Locator"> <Window.Resources> <BooleanToVisibilityConverter x:key="booleantovisibilityconverter"/> <local:stringtointconverter x:key="stringtointconverter"/> </Window.Resources> <DockPanel HorizontalAlignment="Left" LastChildFill="False" Margin="5,0"> <StackPanel DockPanel.Dock="Top"> <StackPanel x:name="spsecret" Orientation="Horizontal" Height="16" Visibility="Binding IsSolved, Converter=StaticResource BooleanToVisibilityConverter, Mode=OneWay"> <TextBlock Height="16" TextWrapping="Wrap" Text="Gratulacje! Sekretna liczba to: " /> <TextBlock x:name="txblsecret" Height="16" TextAlignment="Center" Margin="20,0,0,0" TextWrapping="Wrap" Text="Binding SecretNumber"/> <Button x:name="btnstart" Content="Start" Margin="0,10,0,0" Command="Binding Start, Mode=Default"/> <StackPanel x:name="spguess" Visibility="Binding IsInProgress, Converter=StaticResource BooleanToVisibilityConverter, Mode=OneWay"> <StackPanel Margin="0,10,0,0" Orientation="Horizontal"> <TextBlock Margin="8,0,0,0" TextWrapping="Wrap" Text="Podaj liczbę: " /> <TextBox x:name="txbuserguess" Height="24" TextAlignment="Center" Margin="25,0,0,0" TextWrapping="Wrap" Text="0" Width="50" HorizontalAlignment="Center" VerticalAlignment="Center"> <i:interaction.triggers> <i:eventtrigger EventName="LostFocus"> <GalaSoft_MvvmLight_Command:EventToCommand Command="Binding CheckGuess, Mode=Default" CommandParameter="Binding Text, Converter=StaticResource StringToIntConverter, ElementName=txbUserGuess"/> </i:eventtrigger> </i:interaction.triggers> </TextBox> <Button x:name="btncheck" Content="Sprawdź" Margin="0,10,0,0" Command="Binding CheckGuess" CommandParameter="Binding Text, Converter=StaticResource StringToIntConverter, ElementName=txbUserGuess"/> <TextBlock x:name="txblsuggestion" Margin="0,15,0,0" TextWrapping="Wrap" TextAlignment="Center" Text="Binding Suggestion"/> <localview:optionsview VerticalAlignment="Bottom" DockPanel.Dock="Bottom" Margin="0,0,0,10"/> </DockPanel> </Window>
13 Po wprowadzeniu powyższych zmian interfejs użytkownika prezentuje się następująco:
14 Przewodnik przygotowano na podstawie: [1] [2]
MVVM Light Toolkit. Julita Borkowska
MVVM Light Toolkit Julita Borkowska Czym jest MVVM Light Toolkit? MVVM Light Toolkit został stworzony w 2009 roku przez Laurenta Bugnion. Jest to biblioteka dostarczająca zestaw komponentów pomocnych podczas
Rozwój aplikacji modułowych Paweł Brudnicki. Dodanie modułu
Rozwój aplikacji modułowych Paweł Brudnicki Moduł jest podstawową jednostką funkcjonalności. Stanowi on część, która może być niezależnie pisana, testowana a nawet wdrażana. W przewodniku dodamy niezależny
Przewodnik krok po kroku:
Przewodnik krok po kroku: Aplikacja jest rozbudowywana. Jej podstawą jest: https://msdn.microsoft.com/enus/library/ff921174(v=pandp.40).aspx Do aplikacji dodajemy nowy moduł, który posłuży nam do dodawania
xmlns:prism=http://www.codeplex.com/prism c. <ContentControl prism:regionmanager.regionname="mainregion" />
1 Tworzenie Shella a. W pierwszej kolejności tworzymy nowy projekt: WPF Application. Name: Shell SolutionName: PrismApp b. Dodajemy bibliotekę PRISM za pomocą NuGet Managera (dla.net Framework 4.5 Prism
Programowanie obiektowe
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 07 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami tworzenia aplikacji okienkowych w C#. Wprowadzenie teoretyczne. Rozważana w
- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy
Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy - Narzędzie Windows Forms - Przykładowe aplikacje 1 Narzędzia Windows Form Windows Form jest narzędziem do tworzenia aplikacji dla
Instrukcja laboratoryjna nr.4
Języki programowania na platformie.net cz.2 2016/17 Instrukcja laboratoryjna nr.4 Język Visual Basic for.net Prowadzący: Tomasz Goluch Wersja: 3.1 I. Współpraca Visual Basic z C# Cel: Wykorzystanie w kodzie
Instrukcja laboratoryjna cz.6
Programowanie aplikacji internetowych 2013/2014 Instrukcja laboratoryjna cz.6 Technologia Silverlight cz.2 Prowadzący: Tomasz Goluch Wersja: 3.0 I. Model danych (tworzenie bazy na podstawie modelu). Cel:
ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3
3 ASP.NET MVC Podstawy 1 1. Cel zajęć Celem zajęć jest zapoznanie się z podstawami ASP.NET MVC 2.0 Framework. 2. Zadanie Proszę zbudować prostą aplikację WWW przy zastosowaniu framework a ASP.NET MVC 2.0
Instrukcja laboratoryjna cz.3
Języki programowania na platformie.net cz.2 2015/16 Instrukcja laboratoryjna cz.3 Język C++/CLI Prowadzący: Tomasz Goluch Wersja: 2.0 I. Utworzenie projektu C++/CLI z interfejsem graficznym WPF 1 Cel:
Programowanie obiektowe i zdarzeniowe wykład 1 Wprowadzenie do programowania zdarzeniowego
Programowanie obiektowe i zdarzeniowe wykład 1 Wprowadzenie do programowania zdarzeniowego 1/34 Wymagania wstępne: Znajomość podstaw programowania. Efekty kształcenia: Umiejętność tworzenia prostych aplikacji
Logger. Następnie w klasie Bootstrapper muimy zarejestrować nasz nowy logger:
Logger Na początku stworzymy własny logger. Do tego calu trzeba utworzyć klasę naszego loggera, która będzie implementować interfejs ILoggerFacade. Oto kod tej klasy: public class SimpleLogger: ILoggerFacade
WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.
WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM NetBeans Wykonał: Jacek Ventzke informatyka sem. VI 1. Uruchamiamy program NetBeans (tu wersja 6.8 ) 2. Tworzymy
Wybieramy File->New->Project Wybieramy aplikację MFC->MFC Application jak na rysunku poniżej:
Interfejs w MFC 1. Tworzenie nowego projektu Wybieramy File->New->Project Wybieramy aplikację MFC->MFC Application jak na rysunku poniżej: Następnie wybieramy opcje jak na rysunku: Następnie wybieramy
Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych
Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,
Informatyka II. Laboratorium Aplikacja okienkowa
Informatyka II Laboratorium Aplikacja okienkowa Założenia Program będzie obliczał obwód oraz pole trójkąta na podstawie podanych zmiennych. Użytkownik będzie poproszony o podanie długości boków trójkąta.
Microsoft.NET: LINQ to SQL, ASP.NET AJAX
Microsoft.NET: LINQ to SQL, ASP.NET AJAX Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2008 oraz serwer bazy danych SQL Server Express 2005 (lub
Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych
Laboratorium OiOSE. Programowanie w środowisku MS Visual C++ 1 Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych Organizacja i Oprogramowanie Systemów Elektronicznych Michał Kowalewski
1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1
1 LINQ 1 1. Cel zajęć Celem zajęć jest zapoznanie się z technologią LINQ oraz tworzeniem trójwarstwowej aplikacji internetowej. 2. Zadanie Proszę przygotować aplikację WWW, która: będzie pozwalała na generowanie
Aplikacje WWW - laboratorium
Aplikacje WWW - laboratorium JavaServer Faces Celem ćwiczenia jest przygotowanie aplikacji internetowej z wykorzystaniem technologii JSF. Prezentowane ćwiczenia zostały wykonane w środowisku Oracle JDeveloper
Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz
Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Zagadnienia 1. Delegaty wiązane, właściwości indeksowane 2. Delegaty niewiązane 3. Nowa wersja kalkulatora, delegaty
Budowa aplikacji w technologii.net wykład 7 konwersja, walidacja, szablony, widoki
Budowa aplikacji w technologii.net wykład 7 konwersja, walidacja, szablony, widoki 1/85 ...
Rys. 3. Kod elementów na stronie po dodaniu kontrolek podstawowych.
1 2 Kontrolki standardowe WP7 Michał Ręczkowicz, Opublikowano: 2012-02-08 http://msdn.microsoft.com/pl-pl/library/rozpoczecie-pracy-z-windows-phone--kontrolki-standardowe W tym samouczku dowiesz się, jakie
Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania
1) Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z podstawowymi elementami obiektowymi systemu Windows wykorzystując Visual Studio 2008 takimi jak: przyciski, pola tekstowe, okna pobierania danych
Ćwiczenie 1. Kolejki IBM Message Queue (MQ)
Ćwiczenie 1. Kolejki IBM Message Queue (MQ) 1. Przygotowanie Przed rozpoczęciem pracy, należy uruchomić "Kreator przygotowania WebSphere MQ" oraz przejść przez wszystkie kroki kreatora, na końcu zaznaczając
Laboratorium programowania urządzeń mobilnych
Laboratorium programowania urządzeń mobilnych Wprowadzenie Hierarcha klas dla aplikacji typu Silverlight tworzonej przez Visual Studio jest następująca: Obsługa ekranu W urządzeniach z Windows Phone 7
Rozpoczynając wywód na temat MVVM należy najpierw zadań sobie kilka podstawowych pytań na temat MVVM jako wzorca projektowego :
Slajd3 Dlaczego MVVM? Rozpoczynając wywód na temat MVVM należy najpierw zadań sobie kilka podstawowych pytań na temat MVVM jako wzorca projektowego : Czy musisz dzielić projekt z projektantem (grafikiem
MVVM i XAML w Visual Studio 2015 / Jacek Matulewski. Gliwice, cop Spis treści
MVVM i XAML w Visual Studio 2015 / Jacek Matulewski. Gliwice, cop. 2016 Spis treści Część I Wzorzec MVVM. Podstawy XAML 7 Rozdział 1. Szybkie wprowadzenie do XAML 9 Wzorzec widoku autonomicznego 9 Tworzenie
Programowanie zaawansowane
Programowanie zaawansowane Ćwiczenie 6 Komunikacja silnie typowana I. Utwórz aplikację okienkową realizującą proste obliczenia arytmetyczne. Obsługa zdarzeń w aplikacji typu Windows Form Application odbywa
Programownie w technologii.net wykład 6 Element Binding i Data Binding
Programownie w technologii.net wykład 6 Element Binding i Data Binding 1/41 Element Binding Mechanizm, który pozwala wydobyć pewne informacje z obiektu źródłowego i zapisać je w pewnym obiekcie docelowym.
PHP 5 język obiektowy
PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje
Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6
Zawartość Wstęp... 1 Instalacja... 2 Konfiguracja... 2 Uruchomienie i praca z raportem... 6 Wstęp Rozwiązanie przygotowane z myślą o użytkownikach którzy potrzebują narzędzie do podziału, rozkładu, rozbiórki
Przykładowa dostępna aplikacja w Visual Studio - krok po kroku
Przykładowa dostępna aplikacja w Visual Studio - krok po kroku Zadaniem poniższego opisu jest pokazanie, jak stworzyć aplikację z dostępnym interfejsem. Sama aplikacja nie ma konkretnego zastosowania i
Instrukcja laboratoryjna cz.4
Programowanie aplikacji internetowych 2015/2016 Instrukcja laboratoryjna cz.4 Aplikacje na Windows 8.x Store (C# i XAML) Prowadzący: Tomasz Goluch Wersja: 1.1 I. Wprowadzenie 1 Cel: Przekazanie podstawowych
Projektowanie aplikacji internetowych laboratorium
Projektowanie aplikacji internetowych laboratorium Programowanie w języku Java Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne NetBeans 7 (zrzuty ekranów pochodzą z wersji
Rozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych
Rozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych Jacek Matulewski Materiały dla Podyplomowego Studium Programowania i Zastosowania Komputerów, sekcja Projektowanie i tworzenie aplikacji
Laboratorium 7 Blog: dodawanie i edycja wpisów
Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą
Klasy i obiekty cz II
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy
JAVA W SUPER EXPRESOWEJ PIGUŁCE
JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie
Wprowadzenie do projektu QualitySpy
Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować
Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia
Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia nowego projektu (poniżej są utworzone projekty) Po kliknięciu
Funkcje i instrukcje języka JavaScript
Funkcje i instrukcje języka JavaScript 1. Cele lekcji a) Wiadomości Uczeń : zna operatory i typy danych języka JavaScript, zna konstrukcję definicji funkcji, zna pętlę If i For, Do i While oraz podaje
Wykład 5 Okna MDI i SDI, dziedziczenie
Wykład 5 Okna MDI i SDI, dziedziczenie Autor: Zofia Kruczkiewicz Zagadnienia 1. Aplikacja wielookienkowa. Zakładanie projektu typu CLR Windows Forms 1.1. Aplikacja typu MDI 1.2. Aplikacja typu SDI 2. Dziedziczenie
Makropolecenia w PowerPoint Spis treści
Makropolecenia w PowerPoint Spis treści Co to jest makro?... 2 Tworzenie prostego makropolecenia w PowerPoint... 2 Przypisywanie makropoleceń do wstążki.... 5 Zapisywanie prezentacji z makrem.... 7 ZADANIE...
Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)
Microsoft.NET: ASP.NET MVC + Entity Framework (Code First) Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2012. W ramach projektu budowana jest prosta
Zaawansowane aplikacje internetowe - laboratorium
Zaawansowane aplikacje internetowe - laboratorium Web Services (część 3). Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2005. Ponadto wymagany jest
Ćwiczenia 9 - Swing - część 1
Ćwiczenia 9 - Swing - część 1 Utwórz nowy projekt wybierając: File->New Project->Java Application, przy czym odznacz opcję Create Main Class. Kliknij prawym przyciskiem myszy na podfolder Source Packages
1. Wprowadzenie do WPF i XAML. Tworzenie interfejsu użytkownika.
Tematy zajęć: 1. Wprowadzenie do WPF i XAML. Tworzenie interfejsu użytkownika. 2. Posługiwanie się podstawowymi kontrolkami. 3. Własności i zdarzenia w WPF. 4. Zadania aplikacji. Okna. 5. Polecenia. Zasoby.
Dodanie nowej formy do projektu polega na:
7 Tworzenie formy Forma jest podstawowym elementem dla tworzenia interfejsu użytkownika aplikacji systemu Windows. Umożliwia uruchomienie aplikacji, oraz komunikację z użytkownikiem aplikacji. W trakcie
Programowanie obiektowe
Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do
PWSG Ćwiczenia 12. Wszystkie ukończone zadania należy wysłać na adres: lub
PWSG Ćwiczenia 12 Wszystkie ukończone zadania należy wysłać na adres: sara.m.jurczyk@gmail.com lub sarajurczyk@kul.lublin.pl Zadanie 1: Różnica między zwykłymi polami/metodami, a polami/metodami static
Instrukcja tworzenia aplikacji bazodanowej opartej o technologię Oracle i platformę.net
Instrukcja tworzenia aplikacji bazodanowej opartej o technologię Oracle i platformę.net Aby móc uzyskaćdostęp do bazy danych z zewnętrznych aplikacji, w tym wypadku aplikacji.net, niezbędne jest wykonanie
C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów
Operatory są elementami języka C++. Istnieje zasada, że z elementami języka, takimi jak np. słowa kluczowe, nie można dokonywać żadnych zmian, przeciążeń, itp. PRZECIĄŻANIE OPERATORÓW Ale dla operatorów
KS-ZSA. Mechanizm aktualizacji kartotek lokalnych w aptece na podstawie zmian w kartotece CKT. Data aktualizacji: 2013-08-29
KS-ZSA Mechanizm aktualizacji kartotek lokalnych w aptece na podstawie zmian w kartotece CKT Data aktualizacji: 2013-08-29 1. Opis funkcjonalności Funkcjonalność umożliwia obsługiwanie zmian urzędowych
Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego.
Proxy (pełnomocnik) Cel: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego. Zastosowanie: Wszędzie tam, gdzie oczekujemy bardziej zaawansowanego odwołania do obiektu, niż zwykły
KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany
KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie
Programowanie obiektowe i zdarzeniowe
Programowanie obiektowe i zdarzeniowe wkład 2 klas i obiekt namespace ConsoleApplication1 // współrzędne punktu int, ; Jak zdefiniować w programie punkt? = 3; = 2; Może tak? // wpisanie informacji Console.WriteLine("
KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany
KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie
Zaawansowane aplikacje WWW - laboratorium
Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w
2. W oknie dialogowym Choose Toolbox Items w zakładce.net Framework Components naciskamy przycisk Browse...
KORZYSTANIE Z KONTROLKI.NET LENDEVICERS232 DODAWANIE KONTROLKI DO ZBIORU KOMPONENTÓW DOSTĘPNYCH W PALECIE TOOLBOX (ŚRODOWISKA PROGRAMISTYCZNE FIRMY MICROSOFT) W środowisku programistycznym (Visual C++,
Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod:
1. Listener dla przycisku. Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod: W linii 24 tworzymy globalną metodę mglobal_onclicklistener,
Zdarzenia i polecenia
WPF Programowanie w środowisku Windows Wykład 10-1 Zdarzenia i polecenia Wykład 10-2 Zdarzenia Metoda obsługi zdarzenia może być do niego przypisana w kodzie C# lub w XAML
Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse
Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse 1 Cel laboratorium: Nabycie umiejętności przygotowywania testów akceptacyjnych za pomocą narzędzia FitNesse 1. Wg wskazówek
Aplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - dziedziczenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 W ramach poprzedniego laboratorium
Builder (budowniczy) Cel: Przykład:
1/8 Builder (budowniczy) Cel: Oddzielenie konstruowania złożonego obiektu od jego reprezentacji, tak aby ten sam proces konstrukcji mógł tworzyć różne reprezentacje. Przykład: 2/8 abstract class TableBuilder
5 AS SP.NET MVC. Walidacja danych. Zaawansowane programowanie internetowe Instrukcja nr 5
5 AS SP.NET MVC Walidacja danych 1 1. Cel zajęć Celem zajęć jest zapoznanie się z metodami walidacji danych wprowadzanych przez użytkownika oraz z tworzeniem własnych walidatorów. 2. Zadanie Proszę przebudować
Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz
Aplikacja internetowa zbudowana w oparciu o środowisko Visual Web Java Server Faces. Zarządzanie obiektami typu SesionBeans, RequestBeen i ApplicationBeans, Laboratorium 1 Wzorce oprogramowania lab1, Okres
akademia androida Składowanie danych część VI
akademia androida Składowanie danych część VI agenda 1. SharedPreferences. 2. Pamięć wewnętrzna i karta SD. 3. Pliki w katalogach /res/raw i /res/xml. 4. Baza danych SQLite. 5. Zadanie. 1. SharedPreferences.
Instrukcja implementacji sterownika wirtualnego portu szeregowego dla systemu Android. Opracowanie: Elzab Soft sp. z o.o.
Instrukcja implementacji sterownika wirtualnego portu szeregowego dla systemu Android. Opracowanie: Elzab Soft sp. z o.o. 29.06.2015 2 Spis treści 1. Wymagania...4 2. Uprawnienia systemowe...4 3. Uprawnienie
Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).
Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1). Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej technologię usług sieciowych (ang. Web Services).
Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html
Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Dr inż. Zofia Kruczkiewicz wykład 4 Programowanie aplikacji internetowych, wykład 4 1 1. Zadania aplikacji rozproszonych obiektów
Leszek Stasiak Zastosowanie technologii LINQ w
Leszek Stasiak Zastosowanie technologii LINQ w C# 1. Wstęp - połączenie Do naszych zadań będziemy używać Microsoft Visual Studio 2010. Stwórzmy nowy projekt Windows Form Application. Mając do dyspozycji
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja
Korporacja Kurierska
Korporacja Kurierska (Moduł PrestaShop) v1.0.0 Strona 1 z 17 Spis treści Zgodny z PrestaShop... 3 Instalacja modułu - podstawowa konfiguracja.... 3 Konfiguracja cennika - metody dostawy.... 7 Tworzenie
Programowanie Obiektowe GUI
Programowanie Obiektowe GUI Swing Celem ćwiczenia jest ilustracja wizualnego tworzenia graficznego interfejsu użytkownika opartego o bibliotekę Swing w środowisku NetBeans. Ponadto, ćwiczenie ma na celu
TEMAT : KLASY DZIEDZICZENIE
TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą
Programowanie obiektowe
Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;
Programowanie obiektowe
Programowanie obiektowe Wykład 7 Marcin Młotkowski 8 kwietnia 2015 Plan wykładu Z życia programisty, część 1 1 Z życia programisty, część 1 2 3 Z życia programisty, część 2 Model View Controller MVC w
Programowanie wielowarstwowe i komponentowe
Programowanie wielowarstwowe i komponentowe JSF 2 wprowadzenie Konfiguracja Eclipse - dodanie szablonu XHTML dla potrzeb JSF 1. Otwórz menu Window/Preferences. Następnie z drzewka wybierz Web/HTML Files/Editor/Templates.
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie
Instrukcja laboratoryjna cz.3
Programowanie aplikacji internetowych 2014/2015 Instrukcja laboratoryjna cz.3 Technologia Silverlight cz.1 Prowadzący: Tomasz Goluch Wersja: 4.1 I. Szablon aplikacji oparty o platformę nawigacyjną. Cel:
Instalowanie VHOPE i plików biblioteki VHOPE
Instalowanie VHOPE i plików biblioteki VHOPE Krok 1. Zainstaluj aplikację VHOPE Przed rozpoczęciem korzystania z materiałów prezentacyjnych znajdujących się na tym dysku USB należy zainstalować na komputerze
autor poradnika - KS Jak zamieszczać i edytować artykuły na szkolnej stronie internetowej
Jak zamieszczać i edytować artykuły na szkolnej stronie internetowej adres naszej strony: www.zs3.wroc.pl logo liceum 1. Aby dodać artykuł należy się zalogować: System pokaże nazwę zalogowanego użytkownika
Metody Metody, parametry, zwracanie wartości
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca
Wprowadzenie do Doctrine ORM
Wprowadzenie do Doctrine ORM Przygotowanie środowiska Do wykonania ćwiczenia konieczne będzie zainstalowanie narzędzia Composer i odpowiednie skonfigurowanie Netbeans (Tools->Options->Framework & Tools->Composer,
Programowanie w środowisku graficznym GUI
Programowanie w środowisku graficznym GUI 1. Wprowadzenie Język C# jest stworzony do szybkiego tworzenia aplikacji przy pomocy zintegrowanego środowiska programistycznego IDE (ang. Itegrated Development
D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44
Zaawansowane aplikacje internetowe EJB 1 Rozróżniamy dwa rodzaje beanów sesyjnych: Stateless Statefull Celem tego laboratorium jest zbadanie różnic funkcjonalnych tych dwóch rodzajów beanów. Poszczególne
Aby nadać jej pożądaną postać należy w pliku Window1.xaml stworzyć definicję swojego stylu modyfikując ręcznie postać zapisu XAML:
Lab8 WPF Zad1 : - lista z językami i flagami + wiązanie danych z obiektu przerabiana na ComboBox - fisheye przegląd obrazków lupa (obrazki umieszczone na sztywno) - wyświetlenie galerii zdjęć zapisanej
Omówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka
1 Omówienie wzorców wykorzystywanych w Prism 5.0 Dominika Różycka Czym jest wzorzec projektowy? 2 3 Wzorzec projektowy 1. Uniwersalne i sprawdzone w praktyce rozwiązanie często pojawiających się, powtarzalnych
Dokumentacja panelu Klienta
Dokumentacja panelu Klienta Wersja 1.2 Strona 1 z 25 Spis treści Historia zmian... 3 Logowanie do panelu Klienta... 4 Panel... 5 Wysyłki... 6 Przyłączenia... 7 Ustawienia... 8 Zasoby... 8 Integracje...
Zdarzenia Zdarzenia onload i onunload
Zdarzenia Zdarzenia onload i onunload Ćwiczenie 1. Rysunek 1. Okno powitalne wykorzystujące zdarzenie onload Na stronie mogą zachodzić różne zdarzenia, np. użytkownik kliknie myszą lub zacznie wprowadzać
Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.
Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody
Zad.30. Czy można utworzyć klasę, która implementuje oba interfejsy?
Zad.28. Utwórz klasę, która implementuje oba interfejsy: public void pisz ( ) ; public void pisz ( ) ; Zad.29. Utwórz klasę, która implementuje oba interfejsy: public void pisz ( int l i c z b a ) ; public
Kompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main
Język obiektowy Wykład 13 Programowanie obiektowe z lotu ptaka, str 1 James Gosling, Mike Sheridan, Patrick Naughton Sun Microsystems 1995(20latmłodszyodC) C jest językiem proceduralnym Java jest językiem
Platforma.NET laboratorium 4 Aktualizacja: 15/11/2013. Visual Basic.NET dostęp do bazy danych. Baza Microsoft SQL Server Compact
Platforma.NET laboratorium 4 Aktualizacja: 15/11/2013 Prowadzący: mgr inż. Tomasz Jaworski Strona WWW: http://tjaworski.kis.p.lodz.pl/ Visual Basic.NET dostęp do bazy danych Baza Microsoft SQL Server Compact
A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów
A Zasady współpracy Ocena rozwiązań 3.0 25 40 punktów 3.5 41 65 punktów 4.0 66 80 punktów 4.5 81 100 punktów 5.0 101 130 punktów Warunki zaliczenia przedmiotu Student uzyska ocenę zaliczającą (3.0) o ile
POLITECHNIKA POZNAŃSKA. Oprogramowanie dla telefonów z systemem Windows Phone 8 obsługujących technologię NFC do sprawdzania listy obecności.
POLITECHNIKA POZNAŃSKA Oprogramowanie dla telefonów z systemem Windows Phone 8 obsługujących technologię NFC do sprawdzania listy obecności. Programowanie Kart Elektronicznych Systemy Informatyczne w Zarządzaniu
Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy