در وبسایتی مثل آپارات، چنین آدرسی aparat.com/reporting به منزلهی آدرس دهی به کانال شخصیِ فردی است. حال اگر وبسایت ما نیز چنین سیستم آدرس دهی را داشته باشد و همچنین پیشتر یک Area با نام Reporting را نیز داشته باشیم، توسط چنین آدرسی (درحالت پیش فرض) به آن Area دسترسی خواهیم داشت: mysite.com/reporting
حال اگر یکی از کاربران هنگام ساخت کانالی جدید (برای سناریوی بالا)، بخواهد آدرس کانالش Reporting باشد، با توجه به اینکه هم مسیر دستر ...
اگر چه من این نکات را در حین کار کردن بر روی پروژههای انگیولار یافتم، اما همه آنها مشخصههای انگیولار نیستند؛ فقط کدهای تایپ اسکریپت میباشند. Eliminating the need to import interfaces من interface ها را دوست دارم با این حال نمیخواهم هر بار آنها را import کنم. تمایلی ندارم فایلهای من بخاطر import های چند خطی کثیف شوند (فقط به منظور strong typing )، اگر چه Visual Studio Code ویژگی auto-impo ...
در ASP.NET Core یک View Component ، در نهایت خلاصهایی از قابلیتهایی را ارائه میدهد که قرار است توسط یک کنترلر مدیریت شوند؛ زیرا پارامترهای یک View Component از طریق یک HTTP Request تامین نمیشوند. یعنی به صورت مستقیم از طریق درخواستهای HTTP قابل دسترسی نیستند. فرض کنید در یک برنامه میخواهیم لیست کاربران سایت را نمایش دهیم تا با کلیک بر روی نام کاربر، امکان ویرایش کاربر انتخاب شده را داشته باشیم. با کلیک بر روی لینک مورد نظر، اطلاعات ...
مدیریت پکیجهای سمت کلاینت پروژههای جدیدی که با استفاده از قالب پیشفرض ایجاد میشوند، شامل یک پوشه با نام lib، در شاخهی wwwroot هستند که حاوی این فایلها میباشند: اینها به عنوان حداقلهای ایجاد یک وب اپلیکیشن، برای قالب انتخاب شده در نظر گرفته شدهاند. اما فرض کنید بعد از مدتی میخواهیم ورژن bootstrap استفاده شده در پروژه را ارتقاء دهیم؛ در این حالت چندین انتخاب داریم: دانلود مستقیم فایل مور ...
نام Redis از Remote Dictionary server گرفته شدهاست. Redis یکی از محبوبترین key-value storeها میباشد و هم چنین توسط برندهای بزرگ IT جهان استفاده میشود. لازم به ذکر است Amazon Elastic Cache از Redis پشتیبانی میکند. Redis یک دیتابیس No SQL است و بر روی مفهوم زوج کلید-مقدار (key-value ) کار میکند. key-value store امکانی را برای ذخیره دادهها که Value نامیده میشود، در یک Key فراهم میکند. شما میتوانید بعدا این دادهها را دریافت کن ...
در بین توسعه دهندگان، خیلی رایج است، چند نسخه از Application خود را داشته باشند که Environmentهای مختلفی را مورد هدف قرار میدهد؛ مثل development که مربوط به حالت توسعه میباشد و production که مربوط به حالت ارائه نهایی است. هر Environment تعدادی متغیر منحصر بفرد خود را خواهد داشت؛ مثلAPI Endpoint ، app version و ... . انگیولار تنظیمات Environment را فراهم کرده است تا بتوانیم متغیرهای منحصر بفردی را برای هر Environment، تعریف کنیم. ...
Workspace، اولین بار در انگیولار 6 معرفی شد. Angular Workspace به شما اجازه میدهد کل web application خود را به چندین پروژهی کوچکتر سازماندهی کنید. بیشتر پروژههای کوچک انگیولار تنها شامل یک یا دو پروژه، به ازای هر Workspace میباشند. برای مثال وقتی شما یک پروژهی جدید انگیولار را با Angular CLI ایجاد میکنید، در این حالت Workspace شامل یک app واقعی و یک پروژه e2e tests میباشد. مستندات انگیولار یک پروژه را به صورت زیر توصیف می ...
در قسمتهای قبل ( ^ ، ^ و ^ ) GraphQL را در ASP.Net Core راه اندازی کردیم و در قسمت ( فراخوانی GraphQL API در یک کلاینت ASP.NET Core ) از GraphQL API فراهم شده در یک کلاینت ASP Net Core استفاده کردیم. اکنون میخواهیم چگونگی استفاده از GraphQL را در انگیولار، یاد بگیریم. Apollo Angular، به شما اجازه میدهد دادهها را از یک سرور GraphQL دریافت و از آن برای ساختن UI های واکنشی و پیچیده در انگیولار استفاده کنید. وقتی که از Apo ...
در قسمت قبل ، ایجاد کردن Mutationها را در GraphQL تمام کردیم. در این قسمت تصمیم بر این است که از GraphQL API در یک برنامه ASP.NET Core استفاده کنیم. برای فراخوانی GraphQL API در یک برنامه ASP.NET Core، از یک کتابخانه ثالث که به ما در این فرآیند کمک میکند استفاده خواهیم کرد. Preparing the ASP.NET Core Client Project کار را با ایجاد کردن یک پروژه ASP.NET Core Web API شروع میکنیم : dotnet new api -n DotNetGr ...
Mutationها در GraphQL، اکشنهای میباشند که با استفاده از آنها Add ، Delete و Update را انجام میدهیم. تا کنون ما query های بازیابی اطلاعات را اجرا کردهایم. در این قسمت میخواهیم در رابطه با Mutation دادهها صحبت کنیم. Input Types and Schema Enhancing for the GraphQL Mutations کار را با ایجاد کردن یک کلاس جدید به نام OwnerInputType در پوشه Types، شروع میکنیم: public class OwnerInputType : Inpu ...