{"id":7072,"date":"2023-10-09T04:56:52","date_gmt":"2023-10-09T04:56:52","guid":{"rendered":"https:\/\/studysection.com\/blog\/?p=7072"},"modified":"2023-10-09T04:56:52","modified_gmt":"2023-10-09T04:56:52","slug":"explain-the-application-controller-pattern-with-an-example-in-c","status":"publish","type":"post","link":"https:\/\/studysection.com\/blog\/explain-the-application-controller-pattern-with-an-example-in-c\/","title":{"rendered":"Explain the Application Controller pattern with an example in C#"},"content":{"rendered":"<p>In C#, an application controller is a design pattern used to centralize the flow of an application and manage its various components. It acts as an intermediary between the user interface, business logic, and data access layers.<\/p>\n<p>The application controller pattern helps decouple the different parts of an application, making it easier to maintain and modify. It promotes separation of concerns by keeping the UI code free from business logic and data access code.<\/p>\n<h2>In C#, these are the steps to implement the application Controller pattern:<\/h2>\n<p><strong>Step 1:<\/strong> Identify the components of the application<br \/>\nFor this example, let&#8217;s assume we have a task management application with a user interface and business logic components.<\/p>\n<p><strong>Step 2:<\/strong> Define interfaces<br \/>\nStart by defining the interfaces for the user interface and business logic components.<br \/>\n<code>\/\/ IUserInterface interface<br \/>\npublic interface IUserInterface<br \/>\n{<br \/>\n    void DisplayTasks(List&lt;string> tasks);<br \/>\n    string GetTaskInput();<br \/>\n    void DisplaySuccessMessage(string message);<br \/>\n    bool ShouldContinue();<br \/>\n    void Shutdown();<br \/>\n}<br \/>\n\/\/ IBusinessLogic interface<br \/>\npublic interface IBusinessLogic<br \/>\n{<br \/>\n    List&lt;string> GetTasks();<br \/>\n    void AddTask(string task);<br \/>\n}<\/code><\/p>\n<p><strong>Step 3:<\/strong> Implement the interfaces<br \/>\nfor the user interface and business logic components.<br \/>\n<code>\/\/ ConsoleUserInterface implementation<br \/>\npublic class ConsoleUserInterface : IUserInterface<br \/>\n{<br \/>\n    public void DisplayTasks(List<string> tasks)<br \/>\n    {<br \/>\n        Console.WriteLine(\"Tasks:\");<br \/>\n        foreach (var task in tasks)<br \/>\n        {<br \/>\n            Console.WriteLine(task);<br \/>\n        }<br \/>\n    }<br \/>\n    public string GetTaskInput()<br \/>\n    {<br \/>\n        Console.Write(\"Enter a task: \");<br \/>\n        string task = Console.ReadLine();<br \/>\n        return task;<br \/>\n    }<br \/>\n    public void DisplaySuccessMessage(string message)<br \/>\n    {<br \/>\n        Console.WriteLine(message);<br \/>\n    }<br \/>\n    public bool ShouldContinue()<br \/>\n    {<br \/>\n        Console.Write(\"Do you want to continue? (y\/n): \");<br \/>\n        string input = Console.ReadLine();<br \/>\n        return (input.ToLower() == \"y\");<br \/>\n    }<br \/>\n    public void Shutdown()<br \/>\n    {<br \/>\n        Console.WriteLine(\"Goodbye!\");<br \/>\n    }<br \/>\n}<br \/>\n\/\/ TaskManagementBusinessLogic implementation<br \/>\npublic class TaskManagementBusinessLogic : IBusinessLogic<br \/>\n{<br \/>\n    private List&lt;string> _tasks;<br \/>\n    public TaskManagementBusinessLogic()<br \/>\n    {<br \/>\n        _tasks = new List&lt;string>();<br \/>\n    }<br \/>\n    public List&lt;string> GetTasks()<br \/>\n    {<br \/>\n        return _tasks;<br \/>\n    }<br \/>\n    public void AddTask(string task)<br \/>\n    {<br \/>\n        _tasks.Add(task);<br \/>\n    }<br \/>\n}<\/code><\/p>\n<p><strong>Step 4:<\/strong> Create the application controller class<br \/>\nCreate the application controller class that will manage the flow of the task management application.<br \/>\n<code>\/\/ ApplicationController class<br \/>\npublic class ApplicationController<br \/>\n{<br \/>\n    private readonly IUserInterface _userInterface;<br \/>\n    private readonly IBusinessLogic _businessLogic;<br \/>\n    public ApplicationController(IUserInterface userInterface, IBusinessLogic businessLogic)<br \/>\n    {<br \/>\n        _userInterface = userInterface;<br \/>\n        _businessLogic = businessLogic;<br \/>\n    }<br \/>\n    public void Run()<br \/>\n    {<br \/>\n        bool isRunning = true;<br \/>\n        while (isRunning)<br \/>\n        {<br \/>\n            List&lt;string> tasks = _businessLogic.GetTasks();<br \/>\n            _userInterface.DisplayTasks(tasks);<br \/>\n            string newTask = _userInterface.GetTaskInput();<br \/>\n            _businessLogic.AddTask(newTask);<br \/>\n            _userInterface.DisplaySuccessMessage(\"Task added successfully!\");<br \/>\n            isRunning = _userInterface.ShouldContinue();<br \/>\n        }<br \/>\n        _userInterface.Shutdown();<br \/>\n    }<br \/>\n}<\/code><\/p>\n<p><strong>Step 5:<\/strong> Instantiate the application controller<br \/>\nIn the application&#8217;s entry point (e.g., Main method), create instances of the user interface and business logic implementations, and then instantiate the application controller.<br \/>\n<code>class Program<br \/>\n{<br \/>\n    static void Main(string[] args)<br \/>\n    {<br \/>\n        IUserInterface userInterface = new ConsoleUserInterface();<br \/>\n        IBusinessLogic businessLogic = new TaskManagementBusinessLogic();<br \/>\n        ApplicationController appController = new ApplicationController(userInterface, businessLogic);<br \/>\n        appController.Run();<br \/>\n    }<br \/>\n}<\/code><\/p>\n<p><strong><em>Conclusion:<\/em><\/strong> The controller manages the flow of the application, interacting with the user interface and business logic components to display tasks, add new tasks, and provide feedback to the user.<\/p>\n<p><small><em>People having good knowledge of Financial accounting can get an <a href=\"https:\/\/www.studysection.com\/financial-accountant-advanced-diploma\">Accounting Certification<\/a> from StudySection to increase their chances of getting a job in this field. You can get a foundation level certification if you are new to Financial accounting or you can go for advanced level certification if you have expert level skills in Financial accounting.<\/em><\/small><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In C#, an application controller is a design pattern used to centralize the flow of an application and manage its<\/p>\n","protected":false},"author":1,"featured_media":7073,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[890,142],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Application Controller pattern with an example in C - SS Blog<\/title>\n<meta name=\"description\" content=\"In C#, an application controller is a design pattern used to centralize the flow of an application and manage its various components.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/studysection.com\/blog\/explain-the-application-controller-pattern-with-an-example-in-c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Application Controller pattern with an example in C - SS Blog\" \/>\n<meta property=\"og:description\" content=\"In C#, an application controller is a design pattern used to centralize the flow of an application and manage its various components.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/studysection.com\/blog\/explain-the-application-controller-pattern-with-an-example-in-c\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Posts on famous people, innovations and educational topics\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/studysection\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-09T04:56:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2023\/10\/Application-Controller1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"300\" \/>\n\t<meta property=\"og:image:height\" content=\"200\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin-studysection-blog\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@studysection\" \/>\n<meta name=\"twitter:site\" content=\"@studysection\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin-studysection-blog\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/studysection.com\/blog\/explain-the-application-controller-pattern-with-an-example-in-c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/studysection.com\/blog\/explain-the-application-controller-pattern-with-an-example-in-c\/\"},\"author\":{\"name\":\"admin-studysection-blog\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402\"},\"headline\":\"Explain the Application Controller pattern with an example in C#\",\"datePublished\":\"2023-10-09T04:56:52+00:00\",\"dateModified\":\"2023-10-09T04:56:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/studysection.com\/blog\/explain-the-application-controller-pattern-with-an-example-in-c\/\"},\"wordCount\":287,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/studysection.com\/blog\/#organization\"},\"keywords\":[\"Application Controller\",\"C\"],\"articleSection\":[\"Learn and Grow\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/studysection.com\/blog\/explain-the-application-controller-pattern-with-an-example-in-c\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/studysection.com\/blog\/explain-the-application-controller-pattern-with-an-example-in-c\/\",\"url\":\"https:\/\/studysection.com\/blog\/explain-the-application-controller-pattern-with-an-example-in-c\/\",\"name\":\"Application Controller pattern with an example in C - SS Blog\",\"isPartOf\":{\"@id\":\"https:\/\/studysection.com\/blog\/#website\"},\"datePublished\":\"2023-10-09T04:56:52+00:00\",\"dateModified\":\"2023-10-09T04:56:52+00:00\",\"description\":\"In C#, an application controller is a design pattern used to centralize the flow of an application and manage its various components.\",\"breadcrumb\":{\"@id\":\"https:\/\/studysection.com\/blog\/explain-the-application-controller-pattern-with-an-example-in-c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/studysection.com\/blog\/explain-the-application-controller-pattern-with-an-example-in-c\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/studysection.com\/blog\/explain-the-application-controller-pattern-with-an-example-in-c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/studysection.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Explain the Application Controller pattern with an example in C#\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/studysection.com\/blog\/#website\",\"url\":\"https:\/\/studysection.com\/blog\/\",\"name\":\"Blog Posts on famous people, innovations and educational topics\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/studysection.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/studysection.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/studysection.com\/blog\/#organization\",\"name\":\"StudySection\",\"url\":\"https:\/\/studysection.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png\",\"contentUrl\":\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png\",\"width\":920,\"height\":440,\"caption\":\"StudySection\"},\"image\":{\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/studysection\",\"https:\/\/twitter.com\/studysection\",\"https:\/\/www.instagram.com\/study.section\/\",\"https:\/\/www.linkedin.com\/company\/studysection\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402\",\"name\":\"admin-studysection-blog\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g\",\"caption\":\"admin-studysection-blog\"},\"url\":\"https:\/\/studysection.com\/blog\/author\/admin-studysection-blog\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Application Controller pattern with an example in C - SS Blog","description":"In C#, an application controller is a design pattern used to centralize the flow of an application and manage its various components.","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:\/\/studysection.com\/blog\/explain-the-application-controller-pattern-with-an-example-in-c\/","og_locale":"en_US","og_type":"article","og_title":"Application Controller pattern with an example in C - SS Blog","og_description":"In C#, an application controller is a design pattern used to centralize the flow of an application and manage its various components.","og_url":"https:\/\/studysection.com\/blog\/explain-the-application-controller-pattern-with-an-example-in-c\/","og_site_name":"Blog Posts on famous people, innovations and educational topics","article_publisher":"https:\/\/www.facebook.com\/studysection","article_published_time":"2023-10-09T04:56:52+00:00","og_image":[{"width":300,"height":200,"url":"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2023\/10\/Application-Controller1.png","type":"image\/png"}],"author":"admin-studysection-blog","twitter_card":"summary_large_image","twitter_creator":"@studysection","twitter_site":"@studysection","twitter_misc":{"Written by":"admin-studysection-blog"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/studysection.com\/blog\/explain-the-application-controller-pattern-with-an-example-in-c\/#article","isPartOf":{"@id":"https:\/\/studysection.com\/blog\/explain-the-application-controller-pattern-with-an-example-in-c\/"},"author":{"name":"admin-studysection-blog","@id":"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402"},"headline":"Explain the Application Controller pattern with an example in C#","datePublished":"2023-10-09T04:56:52+00:00","dateModified":"2023-10-09T04:56:52+00:00","mainEntityOfPage":{"@id":"https:\/\/studysection.com\/blog\/explain-the-application-controller-pattern-with-an-example-in-c\/"},"wordCount":287,"commentCount":0,"publisher":{"@id":"https:\/\/studysection.com\/blog\/#organization"},"keywords":["Application Controller","C"],"articleSection":["Learn and Grow"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/studysection.com\/blog\/explain-the-application-controller-pattern-with-an-example-in-c\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/studysection.com\/blog\/explain-the-application-controller-pattern-with-an-example-in-c\/","url":"https:\/\/studysection.com\/blog\/explain-the-application-controller-pattern-with-an-example-in-c\/","name":"Application Controller pattern with an example in C - SS Blog","isPartOf":{"@id":"https:\/\/studysection.com\/blog\/#website"},"datePublished":"2023-10-09T04:56:52+00:00","dateModified":"2023-10-09T04:56:52+00:00","description":"In C#, an application controller is a design pattern used to centralize the flow of an application and manage its various components.","breadcrumb":{"@id":"https:\/\/studysection.com\/blog\/explain-the-application-controller-pattern-with-an-example-in-c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/studysection.com\/blog\/explain-the-application-controller-pattern-with-an-example-in-c\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/studysection.com\/blog\/explain-the-application-controller-pattern-with-an-example-in-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/studysection.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Explain the Application Controller pattern with an example in C#"}]},{"@type":"WebSite","@id":"https:\/\/studysection.com\/blog\/#website","url":"https:\/\/studysection.com\/blog\/","name":"Blog Posts on famous people, innovations and educational topics","description":"","publisher":{"@id":"https:\/\/studysection.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/studysection.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/studysection.com\/blog\/#organization","name":"StudySection","url":"https:\/\/studysection.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png","contentUrl":"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png","width":920,"height":440,"caption":"StudySection"},"image":{"@id":"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/studysection","https:\/\/twitter.com\/studysection","https:\/\/www.instagram.com\/study.section\/","https:\/\/www.linkedin.com\/company\/studysection"]},{"@type":"Person","@id":"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402","name":"admin-studysection-blog","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/studysection.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g","caption":"admin-studysection-blog"},"url":"https:\/\/studysection.com\/blog\/author\/admin-studysection-blog\/"}]}},"views":221,"_links":{"self":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/7072"}],"collection":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/comments?post=7072"}],"version-history":[{"count":2,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/7072\/revisions"}],"predecessor-version":[{"id":7075,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/7072\/revisions\/7075"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/media\/7073"}],"wp:attachment":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/media?parent=7072"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/categories?post=7072"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/tags?post=7072"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}