ASP.NET Application App_Code Folder – जब हम ASP.NET Application Create करते हैं, तब ASP.NET 2.0 एक File-Based Approach Use करता है, जिसकी वजह से हम हमारे Application को बिना Recompile किए हुए उसमें जितने चाहें उतने Files व Folders Add कर सकते हैं। लेकिन ASP.NET 2.0 हमें एक एक Feature के रूप में कुछ ऐसे Folders को Add करने की सुविधा देता है, जो हमारे ASP.NET Application में Automatically Dynamically Precompile हो जाते हैं।
यानी ASP.NET 2.0 आधारित Web Applications में एक Folder Structure को Define किया गया है। इस Folder Structure के Folders में हम जिन Code Files को Place करते हैं, वे Files Automatically उस समय Compile हो जाते हैं, जिस समय हमारे Web Application के उन Pages के लिए Request किया जाता है, जिनमें इन Folders में Stored Files मेंDefine किए गए Program Logic को Specify किया गया होता है। चलिए, इन Special Folders को थोडा Detail से समझने की कोशिश करते हैं:
\App_Code Folder
इस Folder में सामान्यत: हम हमारी Class Files, .wsdl Files व Typed Datasets Files को Store करते हैं। इस Folder में Stored कोई भी File हमारे Visual Studio Solution में Exist Web Application के सभी Pages के लिए समान रूप से Available हो जाते हैं।
\App_Code Folder की सबसे अच्छी बात ये है कि जब हम इस Folder में किसी File को Place करते हैं, तो हमारा Visual Studio उस File को Automatically Detect कर लेता है और वह File कोई .vb या .cs Class File हो या Typed Dataset .xsd File हो, तो उस Class या Dataset को Automatically Compile कर देता है जबकि यदि इसमें Stored File कोई .wsdl File हो, तो उस File के आधार पर Automatically XML Web Service Proxy Class Create कर देता है और ये Compiled Program Logic Codes या Data हमारे Visual Studio Web Application Solution के सभी Webpages के लिए Available हो जाते हैं।
यदि नया Web Application Create करते समय Solution Explorer में ये Folder Exist न हो, तो इस Folder को अपने Current Web Application में Add करने के लिए निम्न चित्रानुसार Solution Explorer में Project पर Right Click करके इस Folder को अपने Solution Explorer में Add किया जा सकता है:
जब एक बार Solution Explorer में \App_Code Folder Add हो जाता है, उसके बाद उस Folder पर Right-Click करने पर Display होने वाले Popup Menu में “Add New Item” Option को Click करते हुए इस Folder में नया Item Add कर सकते हैं। जैसे:
जैसे ही हम इस “Add New Item…” Option को Click करते हैं, हमारे सामने निम्न चित्रानुसार Dialog Box Display होता है:
Solution Explorer में Add होने वाली MyClass.cs File को Open करके उसमें निम्नानुसार Code लिख सकते हैं:
[code] File Name: \App_Code\MyClass.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; ///<summary> /// Summary description for MyClass ///</summary> publicclassMyClass { public int Add(int a, int b) { return (a + b); } } [/code]
एक बार उपरोक्तानुसार तरीके से अपने \App_Code File में MyClass.cs Class File Add करके उसमें Code लिख देने के बाद हमें इस File को Save करना होता है।
जब एक बार हम हमारी Class File को उपरोक्तानुसार Define कर देते हैं, उसके बाद इस Class File को अपने Application के अन्य Pages में Use करने के लिए हम अपने Default.aspx Page पर निम्नानुसार केवल एक Single Label Server Control Specify कर सकते हैं:
[code] File Name:\App_Code\MyClass.cs <%@Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs” Inherits="WebForms" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/x html"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <span>The total of 2 + 120 is: </span> <asp:Label ID="lblApp_CodeTest" runat="server"Text=""></asp:Label> </div> </form> </body> </html> [/code]
और इस Label Control में अपनी Class के Method द्वारा Return होने वाले Output को Place करने के लिए हम Default.aspx.cs Code-Behind File में Page_Load Event के लिए निम्नानुसार Event Handler Code Specify कर सकते हैं:
[code] File Name: Default.aspx.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { MyClass myCalc = newMyClass(); lblApp_CodeTest.Text = myCalc.Add(2, 120).ToString(); } } [/code]
जैसे ही उपरोक्तानुसार तरीके से Page_Load() Event Handler को Define करकेDefault.aspx Page को Run करते हैं, हमें निम्नानुसार Output प्राप्त होता है:
हम देख सकते हैं कि हमारी MyClass.cs Class Compile हो चुकी है, इसीलिए उसमें Specify किया गया Method Execute होते हुए 2 + 120 Calculation को Perform कर रहा है।
जैसाकि हमने पहले भी बताया कि \App_Code Folder में जिस Code File को हम Save किया जाता है, उसे Automatically Dynamically Precompile कर दिया जाता है। यानी जैसे ही हम इस Folder की किसी File में किसी Program Logic Code को Specify करके Save करते हैं, Visual Studio में वह Code Use करने के लिए Available हो जाता है।
उदाहरण के लिए यदि हम हमारी MyClass.cs File को निम्नानुसार Modify करते हुए उसमें “Sub()” Method को भी Specify कर दें-
[code] File Name:\App_Code\MyClass.cs using System; publicclassMyClass { public int Add(int a, int b) { return (a + b); } public int Sub(int a, int b) { return (a - b); } } [/code]
तो इस File में हमारा Newly Add किया गया Sub() Method Precompile हो जाता है, जिसके परिणामस्वरूप Visual Studio IDE में Default.aspx.cs Code-Behind File में ये Method निम्न चित्रानुसार Use करने के लिए Available रहता है:
ऐसा इसीलिए होता है क्योंकि \App_Code Folder में Stored सभी Files Precompile होकर हमारे Visual Studio में Create कि जाने वाले किसी भी Page के लिए Use करने हेतु Available हो जाता है।
लेकिन जब हम \App_Code Folder में Dynamically Precompile होने के लिए Files Save करते हैं, तब इस बात का ध्यान रखना चाहिए कि भले ही हम Visual Studio में Different ASP.NET Webpage या User Controls Create करने के लिए Different Programming Language को Use कर सकते हैं, लेकिन इस Folder में जितनी भी Files को Save किया जाता है, उन सभी की Programming Language समान होनी चाहिए, अन्यथा Pre-compiling दौरान Error Generate होता है। यानी-
[code] \App_Code MyClass.cs YourClass.vb [/code]
यदि हम इस प्रकार से दो Different Language आधारित Program Logic Files को \App_Code Folder में Save करते हैं, Precompile के दौरान Error Generate होता है और ऐसा इसलिए होता है क्योंकि \App_Code Folder में जितनी भी Files को Save किया जाता है, उनके Precompile होने पर सभी के लिए केवल एक Single Assembly File Create होता है।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Core ASP.NET WebForms with C# in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Core ASP.NET WebForms in Hindi | Page:647 | Format: PDF