{"id":1633,"date":"2017-10-30T13:32:45","date_gmt":"2017-10-30T13:32:45","guid":{"rendered":"http:\/\/ninecrows.com\/career\/?p=1633"},"modified":"2017-10-30T13:41:41","modified_gmt":"2017-10-30T13:41:41","slug":"self-hosting-or-wpf","status":"publish","type":"post","link":"https:\/\/ninecrows.com\/career\/2017\/10\/30\/self-hosting-or-wpf\/","title":{"rendered":"C#: Self Hosting Web UI or WPF?"},"content":{"rendered":"<p>I continue to bounce back and forth between self-hosted web UI and WPF UI for implementing simple user interactions.<\/p>\n<p>WPF is likely to be easier to build the right sort of thing with but is a bit less flexible and more &#8216;backward looking&#8217;. Web interfaces require a self-hosting solution if they&#8217;re going to be stand-alone and cross more lines of language and environment.<\/p>\n<p>On balance the web UI path is better as a learning experience and aside from a few corner-cases (OpenGL say) likely to\u00a0 result in a better user experience in the long run.<\/p>\n<p>I&#8217;m still looking for the right self-hosting solution and UI framework solution. I&#8217;m going to have to settle on one shortly so that I can being experimenting in the ninecrows sandbox and getting a feel for the technology.<\/p>\n<p>Current links of interest on the self-hosting front:<\/p>\n<ul>\n<li>\n<a href=\"https:\/\/docs.microsoft.com\/en-us\/aspnet\/web-api\/overview\/older-versions\/self-host-a-web-api\">Self-Host ASP.NET Web API 1 (C#)<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/docs.microsoft.com\/en-us\/aspnet\/web-api\/overview\/hosting-aspnet-web-api\/use-owin-to-self-host-web-api\">Use OWIN to Self-Host ASP.NET Web API 2<\/a>\n<\/li>\n<li><a href=\"https:\/\/stackoverflow.com\/questions\/3875725\/is-there-a-way-to-create-a-self-hosted-web-site-in-net\">Is there a way to create a \u201cSelf-hosted\u201d Web Site in .Net?<\/a><\/li>\n<li><a href=\"https:\/\/stackoverflow.com\/questions\/44757422\/how-to-self-host-an-asp-net-web-api-on-a-home-server\">How to self-host an ASP.Net Web Api on a home server<\/a><\/li>\n<li>\n<a href=\"https:\/\/blog.uship.com\/shippingcode\/self-hosting-a-net-api-choosing-between-owin-with-asp-net-web-api-and-asp-net-core-mvc-1-0\/\">SELF-HOSTING A .NET API: CHOOSING BETWEEN OWIN WITH ASP.NET WEB API AND ASP.NET CORE MVC 1.0<\/a>\n<\/li>\n<\/ul>\n<p>There also seem to be some hard choices between versions of the framework&#8230;classic and core in particular.<\/p>\n<p>More to learn as things move forward. I expect I&#8217;ll wind up doing things with both\/all before I&#8217;m done as they have different strengths. The sorts of things a WPF\/WinForms\/MFC UI can do in terms of digging into the system and being screen real-estate aware along make them of great interest.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I continue to bounce back and forth between self-hosted web UI and WPF UI for implementing simple user interactions. WPF is likely to be easier to build the right sort of thing with but is a bit less flexible and more &#8216;backward looking&#8217;. Web interfaces require a self-hosting solution if they&#8217;re going to be stand-alone &hellip; <a href=\"https:\/\/ninecrows.com\/career\/2017\/10\/30\/self-hosting-or-wpf\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">C#: Self Hosting Web UI or WPF?<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[9,12,3,22,10],"tags":[],"class_list":["post-1633","post","type-post","status-publish","format-standard","hentry","category-daily-blog","category-general-technical","category-ideas","category-sandbox","category-web-development"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p7F2Qc-ql","jetpack-related-posts":[],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/ninecrows.com\/career\/wp-json\/wp\/v2\/posts\/1633"}],"collection":[{"href":"https:\/\/ninecrows.com\/career\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ninecrows.com\/career\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ninecrows.com\/career\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ninecrows.com\/career\/wp-json\/wp\/v2\/comments?post=1633"}],"version-history":[{"count":3,"href":"https:\/\/ninecrows.com\/career\/wp-json\/wp\/v2\/posts\/1633\/revisions"}],"predecessor-version":[{"id":1636,"href":"https:\/\/ninecrows.com\/career\/wp-json\/wp\/v2\/posts\/1633\/revisions\/1636"}],"wp:attachment":[{"href":"https:\/\/ninecrows.com\/career\/wp-json\/wp\/v2\/media?parent=1633"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ninecrows.com\/career\/wp-json\/wp\/v2\/categories?post=1633"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ninecrows.com\/career\/wp-json\/wp\/v2\/tags?post=1633"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}