asp.net-core-mvc ट्यूटोरियल
Asp.net-core-mvc के साथ आरंभ करना
खोज…
टिप्पणियों
यह अनुभाग asp.net-core-mvc क्या है का एक सिंहावलोकन प्रदान करता है, और क्यों एक डेवलपर इसका उपयोग करना चाह सकता है।
यह asp.net-core-mvc के भीतर किसी भी बड़े विषयों का उल्लेख करना चाहिए, और संबंधित विषयों के लिए लिंक करना चाहिए। चूंकि asp.net-core-mvc के लिए दस्तावेज़ीकरण नया है, इसलिए आपको उन संबंधित विषयों के प्रारंभिक संस्करण बनाने की आवश्यकता हो सकती है।
स्थापना या सेटअप
विजुअल स्टूडियो स्थापित करना
यदि आपके पास विजुअल स्टूडियो इंस्टॉल नहीं है, तो आप यहां मुफ्त विजुअल स्टूडियो कम्युनिटी एडिशन डाउनलोड कर सकते हैं । यदि आपके पास पहले से ही स्थापित है, तो आप अगले चरण पर आगे बढ़ सकते हैं।
ASP.NET Core MVC एप्लिकेशन बनाना।
- विजुअल स्टूडियो खोलें।
- फ़ाइल> नया प्रोजेक्ट चुनें।
- बाईं ओर टेम्प्लेट अनुभाग के भीतर अपनी पसंद की भाषा के तहत वेब का चयन करें ।
- संवाद के भीतर एक पसंदीदा प्रोजेक्ट प्रकार चुनें ।
- वैकल्पिक: एक .NET फ्रेमवर्क चुनें जिसे आप लक्षित करना चाहते हैं
- अपनी परियोजना को नाम दें और इंगित करें कि क्या आप परियोजना के लिए समाधान बनाना चाहते हैं।
- प्रोजेक्ट बनाने के लिए ओके पर क्लिक करें ।
प्रोजेक्ट के लिए आप जिस टेम्पलेट का उपयोग करना चाहते हैं, उसे चुनने के लिए आपको एक अन्य संवाद प्रस्तुत किया जाएगा:
प्रत्येक विवरण स्व-व्याख्यात्मक है। इस पहले प्रोजेक्ट के लिए, वेब एप्लिकेशन का चयन करें , जिसमें सभी डिफ़ॉल्ट कॉन्फ़िगरेशन, प्रमाणीकरण और कुछ मौजूदा सामग्री होगी।
चूंकि यह एक परिचय अनुप्रयोग है और इसके लिए आपको किसी सुरक्षा या प्रमाणीकरण की आवश्यकता नहीं है, आप प्रमाणीकरण विकल्प को संवाद के दाईं ओर No Authentication में बदल सकते हैं और प्रोजेक्ट बनाने के लिए OK पर क्लिक कर सकते हैं ।
आपको तब समाधान एक्सप्लोरर के भीतर नई परियोजना को देखना चाहिए:
एप्लिकेशन को चलाने के लिए F5 कुंजी दबाएं और डिबगिंग सत्र शुरू करें, जो आपके डिफ़ॉल्ट ब्राउज़र के भीतर एप्लिकेशन लॉन्च करेगा:
अब आप देख सकते हैं कि आपकी परियोजना स्थानीय स्तर पर चल रही है और आपके आवेदन के निर्माण के लिए एक प्रारंभिक बिंदु के रूप में तैयार है।
PS: Asp.net-core डॉक्यूमेंटेशन से asp.net-core विषय के साथ शुरुआत की जाती है ।
MVC मिडिलवेयर जोड़ें
यदि आपने कोई रिक्त प्रोजेक्ट बनाया है, या आपके पास अभी भी आपके आवेदन में mvc कॉन्फ़िगर नहीं है, तो आप निर्भरता जोड़ सकते हैं:
"Microsoft.AspNetCore.Mvc": "1.0.1"
अपनी project.json
के लिए "dependencies"
तहत फाइल करें।
और अपने स्टार्टअप वर्ग में MVC मिडलवेयर को पंजीकृत करें:
public void ConfigureServices(IServiceCollection services)
{
...
services.AddMvc();
}
ध्यान दें कि हमारे पास दोनों services.AddMvc()
हैं। AddMvc services.AddMvc()
और services.AddMvcCore()
। services.AddMvcCore()
। यदि आप asp.net core
साथ शुरू कर रहे हैं, या आप इसे वैसे ही चाहते हैं, तो आपको services.AddMvc()
साथ रखना चाहिए। services.AddMvc()
। लेकिन अगर आप एक उन्नत अनुभव चाहते हैं, तो आप एक न्यूनतम MVC पाइपलाइन के साथ शुरू कर सकते हैं और services.AddMvcCore()
का उपयोग करके एक अनुकूलित रूपरेखा प्राप्त करने के लिए सुविधाओं को जोड़ सकते हैं। AddMvcCore services.AddMvcCore()
। AddMvcCore
बारे में अधिक जानकारी के लिए यह चर्चा देखें
public void ConfigureServices(IServiceCollection services)
{
services
.AddMvcCore()
.AddAuthorization()
.AddJsonFormatters(j => j.Formatting = Formatting.Indented);
}
अब आप अपने एप्लिकेशन बिल्डर को mvc का उपयोग करने के लिए कह सकते हैं:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
...
app.UseMvc();
}
या डिफ़ॉल्ट रूटिंग के साथ:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
निर्भरता इंजेक्शन मूल बातें
लगभग किसी भी नियंत्रक को काम करने के लिए कुछ बाहरी निर्भरता की आवश्यकता होती है। यहां एक निर्भरता ऑब्जेक्ट (या उसके कारखाने) को कॉन्फ़िगर करने और इसे एक नियंत्रक को पास करने का एक तरीका है। ऐसा करने से चिंताओं को अलग करने में मदद मिलेगी, कोड स्पष्ट और परीक्षण योग्य रहेगा।
कहो, हमारे पास एक इंटरफ़ेस और उसका कार्यान्वयन है जिसे इसके निर्माता में कॉन्फ़िगर से कुछ मूल्यों की आवश्यकता है:
public interface ISomeDependency
{
async Task<IEnumerable<string>> GetItemsAsync(string key);
}
public class SomeDependency : ISomeDependency
{
public SomeDependency(string connectionString)
{
...
}
...
}
इसका उपयोग कुछ नियंत्रक वर्ग में किया जाता है:
public class SomeController : Controller
{
private reanonly ISomeDependency dependency;
public SomeController(ISomeDependency dependency)
{
...
this.dependency = dependency;
}
...
public async Task<IEnumerable<string>> Get(string key) =>
await dependency.GetItemsAsync(key);
}
एक कंट्रोलर कंस्ट्रक्टर कॉलिंग services.AddTransient
में इस निर्भरता को इंजेक्ट कर सकता है। Startup.ConfigureServices
विधि के अंदर Startup.ConfigureServices
:
public class Startup
{
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder().
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
...
Configuration = builder.Build();
}
public IConfigurationRoot Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
...
services.AddTransient(serviceProvider =>
new MyDependency(Configuration["Data:ConnectionString"]));
}
...
}
यहाँ Data:ConnectionString
appsettings.json
फ़ाइल में सेटिंग का एक रास्ता है:
{
...
},
"Data": {
"ConnectionString": "some connection string"
}
}
आजीवन प्रबंधन
AddTransient
के साथ-साथ इंजेक्ट किए गए ऑब्जेक्ट के जीवनकाल का प्रबंधन करने के लिए, एक और दो विकल्प मौजूद हैं: AddSingleton
और AddScoped
। अंतिम का अर्थ है कि ऑब्जेक्ट का जीवनकाल एक HTTP अनुरोध के लिए बंद कर दिया गया है।
संस्करण
संस्करण | घोषणाएँ | रिलीज़ की तारीख |
---|---|---|
RC1 * | 1.0.0-RC1 | 2015/11/01 |
RC2 * | 1.0.0-rc2 | 2016/05/16 |
1.0.0 | 1.0.0 | 2016/06/27 |
1.0.1 | 1.0.1 | 2016/09/13 |
1.0.1 | 1.0.1 | 2016/09/13 |
1.1 | 1.1.0 | Q4 2016 / Q1 2017 |
1.2 | 1.2.0 | Q1 2017 / Q2 2017 |
* वार्षिक तिमाहियों (Q1, Q2, Q3, Q4) के संदर्भ कैलेंडर आधारित हैं