{"id":37517,"date":"2024-11-01T09:58:12","date_gmt":"2024-11-01T09:58:12","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=37517"},"modified":"2024-11-01T11:02:25","modified_gmt":"2024-11-01T11:02:25","slug":"uwp-development-developing-simpleprismblank-app","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/37517\/","title":{"rendered":"UWP Development, Developing SimplePrismBlank App"},"content":{"rendered":"<p>Universal Windows Platform (UWP) development provides a way to create applications that can run on various Windows 10 devices. UWP is a powerful tool for developers that can provide rich and interactive user experiences. In this article, we will introduce how to create a simple UWP application using the Prism framework.<\/p>\n<h2>1. Introduction to UWP and Prism Framework<\/h2>\n<p>UWP is an app development platform designed for Microsoft&#8217;s Windows 10 operating system. UWP applications can run on PCs, tablets, Xbox, and other Windows 10 devices. This allows developers to deliver apps to users across a wide range of devices.<\/p>\n<p>Prism is a popular MVVM (Model-View-ViewModel) framework that supports UWP application development. Using Prism improves code reusability, testability, and maintainability. Prism offers many features such as modularity, dependency injection, event-based communication, and the MVVM pattern.<\/p>\n<h2>2. Setting Up the Development Environment<\/h2>\n<p>To develop UWP applications and Prism, several tools and libraries are needed:<\/p>\n<ul>\n<li>Visual Studio 2019 or 2022<\/li>\n<li>Windows 10 SDK<\/li>\n<li>Prism library<\/li>\n<\/ul>\n<p>After installing Visual Studio and selecting the required components, create a new UWP project.<\/p>\n<h2>3. Creating the SimplePrismBlank App<\/h2>\n<p>Now let&#8217;s create a simple Prism Blank UWP app. Follow the steps below.<\/p>\n<h3>3.1 Creating a New UWP Project<\/h3>\n<p>In Visual Studio, select &#8220;File&#8221; -> &#8220;New&#8221; -> &#8220;Project&#8221;. Choose &#8220;Blank App (Universal Windows)&#8221; and set the project name to &#8220;SimplePrismBlank&#8221;.<\/p>\n<h3>3.2 Installing Prism NuGet Packages<\/h3>\n<p>Right-click the project in Solution Explorer and select &#8220;Manage NuGet Packages&#8221;. Type &#8220;Prism&#8221; in the search box to find and install the Prism library. Make sure to include the <strong>Prism.Core<\/strong> and <strong>Prism.Uwp<\/strong> packages during installation.<\/p>\n<h3>3.3 Modifying the App.xaml.cs File<\/h3>\n<p>Next, modify the App.xaml.cs file to initialize Prism. Add the code below.<\/p>\n<pre><code>using Prism;\nusing Prism.Ioc;\n\nnamespace SimplePrismBlank\n{\n    sealed partial class App : Application\n    {\n        public App()\n        {\n            this.InitializeComponent();\n            this.Suspending += OnSuspending;\n        }\n\n        protected override void OnLaunched(LaunchActivatedEventArgs e)\n        {\n            Frame rootFrame = Window.Current.Content as Frame;\n\n            if (rootFrame == null)\n            {\n                rootFrame = new Frame();\n                Window.Current.Content = rootFrame;\n            }\n\n            if (rootFrame.Content == null)\n            {\n                var prismApp = new PrismApplication();\n                prismApp.RegisterTypes((container) =>\n                {\n                    \/\/ Add mapping of pages and view models here\n                    container.RegisterType<mainpage, mainpageviewmodel>();\n                });\n                prismApp.OnInitialized();\n            }\n\n            Window.Current.Activate();\n        }\n\n        private void OnSuspending(object sender, SuspendingEventArgs e)\n        {\n            var deferral = e.SuspendingOperation.GetDeferral();\n            \/\/ TODO: Save all state here\n            deferral.Complete();\n        }\n    }\n}<\/mainpage,><\/code><\/pre>\n<h3>3.4 Creating MainPage and ViewModel<\/h3>\n<p>Next, create the MainPage.xaml file and build the user interface. The MainPage.xaml file should look like this:<\/p>\n<pre><code>&lt;Page\n    x:Class=\"SimplePrismBlank.Views.MainPage\"\n    xmlns=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\/presentation\"\n    xmlns:x=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\"\n    xmlns:local=\"using:SimplePrismBlank.Views\"\n    xmlns:vm=\"using:SimplePrismBlank.ViewModels\"\n    xmlns:d=\"http:\/\/schemas.microsoft.com\/expression\/blend\/2008\"\n    xmlns:mc=\"http:\/\/schemas.openxmlformats.org\/markup-compatibility\/2006\"\n    mc:Ignorable=\"d\"&gt;\n\n    &lt;Grid Background=\"{ThemeResource ApplicationPageBackgroundThemeBrush}\"&gt;\n        &lt;TextBlock Text=\"{Binding Greeting}\" FontSize=\"24\" HorizontalAlignment=\"Center\" VerticalAlignment=\"Center\"\/&gt;\n        &lt;Button Content=\"Click me!\" Command=\"{Binding GreetCommand}\" HorizontalAlignment=\"Center\" VerticalAlignment=\"Bottom\" Margin=\"0,0,0,50\"\/&gt;\n    &lt;\/Grid&gt;\n&lt;\/Page&gt;<\/code><\/pre>\n<p>Then create the ViewModel. Create a MainPageViewModel.cs file and add the code below:<\/p>\n<pre><code>using Prism.Commands;\nusing Prism.Mvvm;\n\nnamespace SimplePrismBlank.ViewModels\n{\n    public class MainPageViewModel : BindableBase\n    {\n        private string _greeting;\n        public string Greeting\n        {\n            get { return _greeting; }\n            set { SetProperty(ref _greeting, value); }\n        }\n\n        public DelegateCommand GreetCommand { get; private set; }\n\n        public MainPageViewModel()\n        {\n            Greeting = \"Hello, UWP with Prism!\";\n            GreetCommand = new DelegateCommand(OnGreet);\n        }\n\n        private void OnGreet()\n        {\n            Greeting = \"You clicked the button!\";\n        }\n    }\n}<\/code><\/pre>\n<h2>4. Running the App<\/h2>\n<p>After writing all the above code, build and run the solution. When the app runs, you can click the button, and you will see the message change upon clicking it.<\/p>\n<h3>4.1 Enhancing the User Interface<\/h3>\n<p>You can now further enhance the user interface. You can add styles and controls in the XAML code to create a more attractive UI. For example, you can change colors or add animation effects when the button is pressed.<\/p>\n<h2>5. Conclusion<\/h2>\n<p>We explored how to develop UWP apps and utilize the Prism framework. Through this tutorial, we created a simple UWP application and applied the MVVM pattern to improve code reusability and maintainability.<\/p>\n<p>As a next step, consider implementing more complex app functionalities or expanding features through database and API communication. Enjoy the experience of developing appealing and interactive applications for various Windows 10 devices using UWP and Prism!<\/p>\n<h2>6. Additional Resources<\/h2>\n<ul>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/windows\/uwp\/\" target=\"_blank\" rel=\"noopener\">Official UWP Documentation<\/a><\/li>\n<li><a href=\"https:\/\/prismlibrary.com\/\" target=\"_blank\" rel=\"noopener\">Official Prism Documentation<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/dotnet\/desktop\/wpf\/mvvm\/using-mvvm-in-wpf?view=netframeworkdesktop-4.8\" target=\"_blank\" rel=\"noopener\">Understanding the MVVM Pattern<\/a><\/li>\n<\/ul>\n<p>If you have gained a basic knowledge of UWP development through this tutorial, take on more projects!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Universal Windows Platform (UWP) development provides a way to create applications that can run on various Windows 10 devices. UWP is a powerful tool for developers that can provide rich and interactive user experiences. In this article, we will introduce how to create a simple UWP application using the Prism framework. 1. Introduction to UWP &hellip; <a href=\"https:\/\/atmokpo.com\/w\/37517\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;UWP Development, Developing SimplePrismBlank App&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[115],"tags":[],"class_list":["post-37517","post","type-post","status-publish","format-standard","hentry","category-uwp-programming"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>UWP Development, Developing SimplePrismBlank App - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/atmokpo.com\/w\/37517\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"UWP Development, Developing SimplePrismBlank App - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Universal Windows Platform (UWP) development provides a way to create applications that can run on various Windows 10 devices. UWP is a powerful tool for developers that can provide rich and interactive user experiences. In this article, we will introduce how to create a simple UWP application using the Prism framework. 1. Introduction to UWP &hellip; \ub354 \ubcf4\uae30 &quot;UWP Development, Developing SimplePrismBlank App&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/37517\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:58:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:02:25+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"4\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/37517\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37517\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"UWP Development, Developing SimplePrismBlank App\",\"datePublished\":\"2024-11-01T09:58:12+00:00\",\"dateModified\":\"2024-11-01T11:02:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37517\/\"},\"wordCount\":488,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"UWP Programming\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/37517\/\",\"url\":\"https:\/\/atmokpo.com\/w\/37517\/\",\"name\":\"UWP Development, Developing SimplePrismBlank App - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:58:12+00:00\",\"dateModified\":\"2024-11-01T11:02:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37517\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/37517\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/37517\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"UWP Development, Developing SimplePrismBlank App\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"UWP Development, Developing SimplePrismBlank App - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/atmokpo.com\/w\/37517\/","og_locale":"ko_KR","og_type":"article","og_title":"UWP Development, Developing SimplePrismBlank App - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Universal Windows Platform (UWP) development provides a way to create applications that can run on various Windows 10 devices. UWP is a powerful tool for developers that can provide rich and interactive user experiences. In this article, we will introduce how to create a simple UWP application using the Prism framework. 1. Introduction to UWP &hellip; \ub354 \ubcf4\uae30 \"UWP Development, Developing SimplePrismBlank App\"","og_url":"https:\/\/atmokpo.com\/w\/37517\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:58:12+00:00","article_modified_time":"2024-11-01T11:02:25+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"4\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/37517\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/37517\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"UWP Development, Developing SimplePrismBlank App","datePublished":"2024-11-01T09:58:12+00:00","dateModified":"2024-11-01T11:02:25+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/37517\/"},"wordCount":488,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["UWP Programming"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/37517\/","url":"https:\/\/atmokpo.com\/w\/37517\/","name":"UWP Development, Developing SimplePrismBlank App - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:58:12+00:00","dateModified":"2024-11-01T11:02:25+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/37517\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/37517\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/37517\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"UWP Development, Developing SimplePrismBlank App"}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37517","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=37517"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37517\/revisions"}],"predecessor-version":[{"id":37518,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37517\/revisions\/37518"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=37517"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=37517"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=37517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}