Използвайки интегрираната среда за разработка Visual Studio и езика за програмиране C# ще разработим универсално приложение за изтегляне на вицове за Чък Норис във формат JSON.
Информация
JSON или JavaScript Object Notation, е текстово базиран отворен стандарт създаден за човешки четим обмен на данни. Произлиза от скриптовия език JavaScript, за да представя прости структури от данни и асоциативни масиви, наречени обекти.
Стартирайте интегрираната среда за разработка Visual Studio.
Създайте нов проект: Visual C# > Windows Universal > Blank App (Universal Windows).
За име на проекта запишете: JSON Reader 1.0.
Добавете допълнителни пакети към проекта като инсталирате: NewtownSoft.Json и AngleSharp, от менюто: Tools > NuGet Package Manager > Package Manager Console, като изпълните следните команди в конзолата:
Заредете и копирайте примерен JSON от: https://api.chucknorris.io/jokes/random
Генерирайте C# класа на избрания JSON от: http://json2csharp.com/
MainPage.xaml
Файлът MainPage.xaml съдържа изходния код от дизайна на потребителския интерфейс на разработваното приложение и се пише на езика XAML. Копирайте (Ctrl+C) и поставете (Ctrl+V) програмният фрагмент даден по-долу във Вашето приложение.
Изглед от дизайна на потребителският интерфейс (XAML) в интегрираната среда за разработка Visual Studio по време на разработване на приложението:
Фиг. 47. Изглед от дизайна на потребителският интерфейс
MainPage.xaml.cs
Файлът MainPage.xaml.cs съдържа изходния код от бизнес логиката на разработваното приложение и се пише на програмният език C#. Копирайте (Ctrl+C) и поставете (Ctrl+V) програмният фрагмент даден по-долу във Вашето приложение.
usingSystem;usingSystem.Net.Http;usingWindows.UI.Xaml;usingWindows.UI.Xaml.Controls;usingAngleSharp.Html.Parser;usingNewtonsoft.Json;usingWindows.Media.SpeechSynthesis;namespaceJSON_Reader_1._0{ /// <summary> /// Business Logic (BL): JSON Reader 1.0 /// </summary>publicsealedpartialclassMainPage:Page { // ConstructorpublicMainPage() {this.InitializeComponent(); } // Button Get Joke Event HandlerprivateasyncvoidButton_Get_Click(object sender,RoutedEventArgs e) { // Download JSONHttpClient client =newHttpClient();var json =awaitclient.GetStringAsync(newUri("https://api.chucknorris.io/jokes/random")); // Deserialize the JSONvar joke =JsonConvert.DeserializeObject<Root>(json); // Parse the HTMLvar html =newHtmlParser().ParseDocument(joke.value);var text =html.Body.TextContent; // Tell the JokeJoke.Text= text; } // Button Tell Joke Event HandlerprivateasyncvoidButton_Tell_Click(object sender,RoutedEventArgs e) {if (Joke.Text!="") { // The media object for controlling and playing audio.var mediaElement =newMediaElement(); // The object for controlling the speech synthesis engine (voice).var synth =newSpeechSynthesizer(); // Generate the audio stream from plain text.var stream =awaitsynth.SynthesizeTextToStreamAsync(Joke.Text); // Send the stream to the media object.mediaElement.SetSource(stream,stream.ContentType);mediaElement.Play(); } } }}
Изглед от бизнес логиката (C#) в интегрираната среда за разработка Visual Studio по време на разработване на приложението:
Фиг. 48. Изглед от бизнес логиката на разработваното приложение
Demo
Стартирайте приложението от менюто: Debug > Start Debugging или като натиснете клавиш F5.
Фиг.49 Универсално приложение за изтегляне на вицове за Чък Норис