<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های حسین حبیبیان</title>
        <link>https://virgool.io/feed/@hn.habibiyan</link>
        <description>توسعه دهنده ی نرم افزار .  علاقه مند به  حیوانات  ,  طبیعت و  موسیقی</description>
        <language>fa</language>
        <pubDate>2026-06-18 07:17:35</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/78512/avatar/ORH15D.jpeg?height=120&amp;width=120</url>
            <title>حسین حبیبیان</title>
            <link>https://virgool.io/@hn.habibiyan</link>
        </image>

                    <item>
                <title>Event Emitter در انگولار</title>
                <link>https://virgool.io/@hn.habibiyan/event-emitter-%D8%AF%D8%B1-%D8%A7%D9%86%DA%AF%D9%88%D9%84%D8%A7%D8%B1-tp6u6rkoi6gc</link>
                <description>اگر نیاز دارید از کامپوننت جاری به parent دیتا ارسال بشه میتونید از Event Emitter همراه با دکوراتور Output استفاده کنید در واقع Event Emitter به شما امکان ساخت Event سفارشی را میدهو دکوراتور Output اجازه میده بتونید ٍEvent خودتونو به کامپوننت Parent ارسال کنیددر مثال زیر کامپوننتی به نام child داریم :import { Component, OnInit,Output,EventEmitter } from &#039;@angular/core&#039;;@Component({selector: &#039;app-child&#039;,templateUrl: &#039;./child.component.html&#039;,styleUrls: [&#039;./child.component.css&#039;]})export class ChildComponent implements OnInit {   @Output()   message: EventEmitter&lt;any&gt; =  new EventEmitter&lt;any&gt;();   constructor() { }   ngOnInit(): void { }    sendMessage(){   this.message.emit(&amp;quotmessage from child component&amp;quot)  }}در اینجا پروپرتی message با دکوراتور output مزین شده و با این کار در کامپوننت Parent بهش دسترسی داریم تایپ دیتای EventEmitter بصورت جنریک مشخص میشه که در اینجا any انتخاب شده ولی بسته به نوع دیتای که میخوایم ارسال کنیم میتونستیم string هم بزاریمدر تابع sendMessage پیامی را emit کردیم که در کامپوننت parent میخوایم دریافتش کنیمپس تا اینجا یک پروپرتی به نام Message داریم که یک Event سفارشی هست و چون روی اون دکوراتور Output گذاشتیم در Parent بهش دسترسی داریمدر View کامپوننت parent هم داریم :&lt;app-child (message)=&amp;quotgetMessage($event)&amp;quot&gt;&lt;/app-child&gt;

&lt;h1&gt;{{receivedMessage}}&lt;/h1&gt;  در اینجا هم از event ایی که در مرحله ی قبل ساختیم به این شکل استفاده میکنیم و دیتایی که دریافت شده را به تابع getMessage پاس میدیم و در کامپوننت parent به این شکل داریم :@Component({selector: &#039;app-root&#039;,templateUrl: &#039;./app.component.html&#039;,styleUrls: [&#039;./app.component.css&#039;]})export class AppComponent {receivedMessage:string;getMessage(msg){this.receivedMessage= msg;}}امیدوارم براتون مفید بوده باشه </description>
                <category>حسین حبیبیان</category>
                <author>حسین حبیبیان</author>
                <pubDate>Tue, 05 May 2020 23:03:22 +0430</pubDate>
            </item>
                    <item>
                <title>دات نت با طعم گنو لینوکس قسمت دوم</title>
                <link>https://virgool.io/@hn.habibiyan/%D8%AF%D8%A7%D8%AA-%D9%86%D8%AA-%D8%A8%D8%A7-%D8%B7%D8%B9%D9%85-%DA%AF%D9%86%D9%88-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D9%82%D8%B3%D9%85%D8%AA-%D8%AF%D9%88%D9%85-flene1svbrif</link>
                <description>در قسمت قبل SDK و دیتابیس خودمون را نصب کردیم و حالا نوبت انتخاب ابزارهای محیط توسعه  رسیده .به عنوان اولین مورد میریم سراغ IDE محبوب خودم از شرکت خلاق JetBrains که واقعا محصولات فوق العاده ایی داره .1 . JetBrains Rider واقعا یک انتخاب قدرتمند و کامل محسوب میشه و همه ی نیازهاتونو تامین میکنه.حتی به افرادی که از سیستم عامل ویندوز استفاده میکنن باید بگم که ویژوال استادیو را فراموش کنیداز هر لحاظ این IDE برتری داره و با اختلاف بهتره .ویژگی ها :بهبود auto completion با machine learning براساس سبک کدنویسیتشخیص داینامیک تغییرات کد در زمان دیباگ ( apply edit and continue changes )قابلیت Quick Evaluate  همون quick watch شبیه ویژوال استادیو ولی خیلی قوی تر )قابلیت code refactor بسیار کامل و قدرتمند ( مشابه ابزار Resharper که بصورت دیفالت وجود داره ) پشتیبانی از پلاگین های متنوعکراس پلتفرمقابلیت شخصی سازی بسیار زیاد و انعطاف پذیرو کلی قابلیت دیگه که وقتی ازش استفاده کنید خودتون میبینیدپیشنهاد میکنم برای یکبار شورتکات هاشو برای خودتون کاستومایز کنید و ازش بکاپ بگیرید تا اینجوری راحت تر باشید و هم بهره وری تون افزایش پیدا کنه .خب خیلی دیگه ازش تعریف کردم :)بریم بعدی 2 . Visual Studio Codeنیاز به معرفی خاصی نداره و حتما همتون باهاش اشنا هستید و محبوب این روزهاست.ویژگی ها:سبک و سریع  پلاگین های زیاد و افزودن قابلیت های متنوعرایگانبرای همه ی چیز پلاگین داره و تقریبا کمبودی حس نمیکنیدولی انتظاری برای Code Completion و Refactor نداشته باشید که در این مورد قوی نیست اما کارتونو راه میندازه.بیشتر محبوب فرانت اند کارها هست و اگر برای توسعه ی بکند نیاز به ابزارهای Debugger و Code Refactor قوی دارید باید سراغ انتخاب های بهتری مثل Rider برید .مورد بعدی رابط گرافیکی برای کار با دیتابیس Sql Server هست3 . Azure Data Studioابزاری سبک , رایگان و  کراس پلتفرم برای اتصال به Sql server مشابه Sql Server Management Studio هستمشابه vs code از پلاگین پشتیبانی میکنه و میتونید قابلیت های متنوعی بر اساس نیازتون بهش اضافه کنید امیدوارم براتون مفید بوده باشه</description>
                <category>حسین حبیبیان</category>
                <author>حسین حبیبیان</author>
                <pubDate>Fri, 01 May 2020 17:00:41 +0430</pubDate>
            </item>
                    <item>
                <title>دات نت با طعم گنو لینوکس قسمت اول</title>
                <link>https://virgool.io/@hn.habibiyan/%D8%AF%D8%A7%D8%AA-%D9%86%D8%AA-%D8%A8%D8%A7-%D8%B7%D8%B9%D9%85-%DA%AF%D9%86%D9%88-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84-cftpbj1ofgmd</link>
                <description>کدنویسی در گنو لینوکس تجربه ی لذت بخشی هست که در این مقاله قصد دارم استفاده از محصولات مایکروسافت در این سیستم عامل را با هم بررسی کنیم و محیط توسعه ی خودمونو اماده سازی کنیم .به لطف دات نت کور و Sql Server کراس پلتفرم دیگه محدود به سیستم عامل و IDE خاصی نیستیم و هرجایی میتونیم توسعه بدیم و دپلوی کنیم . مهمترین ویژگی های مثبتی که  گنو لینوکس برای من به همراه داشته :انتخاب دسکتاپ بر اساس ویژگی های دلخواهامکان شخصی سازی های بسیار زیاد در بخش های مختلف و افزایش بهره وری و سرعت کارسرعت کامپایل  بهتر پایداری و کارایی بهتر سیستم عامل توزیع مورد علاقه ی من kubuntu که همون ابونتو با طعم KDE Plasma  هست که براساس سلیقه و نیاز  خودم شخصی سازی کردم .پس از اینکه توزیع مورد علاقه ی خودتونو نصب کردید بریم سراغ نصب ابزار و اماده سازی محیط توسعه .از این ادرس میتونید SDK دات نت کور را براساس نوع سیستم عامل دریافت و نصب کنیدhttps://dotnet.microsoft.com/downloadبرای نصب روی گنو لینوکس مراحل ساده ایی داره که  براساس نوع توزیع دستوراتو دنبال کنید .اگر علاقه به استفاده از Sql server دارید ما در این مقاله قصد داریم با استفاده از داکر از اون استفاده کنیم البته امکان نصب ورژن لینوکسی Sql server هم محیا هست که میتونید داکیومنتش را در سایت مایکروسافت پیدا کنید و طبق دستورات پیش برید .ابتدا باید داکر را نصب کنیم که در این ادرس مراحل نصب بصورت کامل توضیح داده شده https://docs.docker.com/engine/install/حالا باید  ایمیج Sql Server را  Pull کنیم پس ترمینال را باز میکنیم و این دستور را وارد میکنیم . داکر مارو تحریم کرده پس استفاده از ابزار عبور از تحریم فراموش نشهsudo docker pull mcr.microsoft.com/mssql/serverو منتظر میشیم تا فرایند تموم بشه .بعد این دستورو وارد میکنیم تا ایمیج هایی که از قبل دریافت کردیم را ببینیم:sudo docker imagesهر ایمیج یک id هم داره که برای ساخت کانتینر میتونیم ازش استفاده کنیم .البته براساس نام ایمیج هم میشه این کارو انجام داد. حالا باید از روی اون ایمیج کانتینر خودمون را بسازیم و start کنیم پس از این دستور استفاده میکنیم:sudo docker run -e &amp;quotACCEPT_EULA=Y&amp;quot -e &amp;quotSA_PASSWORD=YourPassword&amp;quot -p 1433:1433  -d 229d30f7b467  بجای YourPassword پسورد sa دیتابیس را وارد کنید . * توجه کنید که پسورد ساده نباشه وگرنه کانتینر ساخته میشه ولی بدرستی run نمیشه و در لاگ برای پسورد ارور میده که اونوقت باید از اول کانتینر بسازیددر انتهای دستور هم id  ایمیج خودتون که در نتیجه ی اجرای دستور قبل بدست اوردید را بجای id من قرار بدیددر سوئیچ p  پورت دسترسی به کانتینر مشخص شده است .پورت  مورد استفاده  Sql Server   بصورت دیفالت 1433 هست که در این دستور پورت 1433 سیستم میزبان به 1433  Sql Server درون کانتینر نگاشت شده است .در واقع پورت سمت چپ برای دسترسی از بیرون به کانتینر  و پورت سمت راست جهت دسترسی از درون کانتینر  به سرویس ما هست.با استفاده از دستور زیر میتونیم لیست کانتینر های در حال اجرا را مشاهده کنیم:sudo docker psبا اضافه کردن سوئیچ a میتونیم لیست کل کانتینر هایی هم که در حالت اجرا قرار ندارد هم ببینیم :sudo docker ps -aدر ستون status وضعیت کانتینر ها قابل مشاهده هست که در حالت اجرا یا عدم اجرا قرار دارن .اگر کانتینری که در مرحله ی قبل ساختیم در حالت اجرا قرار نداشت با این دستور اونو start میکنیم:sudo docker start  YourContainerIdحالا وقتشه که با استفاده از کامندلاین به دیتابیس وصل بشیم.پس این دستورو وارد کنید :docker exec -it   YourContainerId  /opt/mssql-tools/bin/sqlcmd -s localhost -U saبجای YourContainerId هم id کانتینر خودتون که در نتیجه ی دستور docker ps بدست اوردید را قرار بدید.و پس از اجرای دستور از شما میخواد پسورد sa که در زمان run کردن کانتینر انتخاب کردید را وارد کنید .پس از اون  حالا میتونید دستورات کامند Sql server را وارد کنید و به این صورت ازش استفاده کنید .مثلا برای چک کردن ورژن دیتابیس این دستورو وارد کنید :select @@version
goیا برای دیدن لیست دیتابیس های موجود :select name from sys.databases
goخب تا اینجای کار ما دیتابیس و SDK خودمونو نصب و اماده کردیم . در قسمت  بعد میخوایم IDE مناسب برای کدنویسی و رابط گرافیکی جهت استفاده از Sql server انتخاب ,  نصب و اماده سازی کنیم تا بتونیم راحت تر فرایند توسعه ی پروژه هامونو انجام بدیم .</description>
                <category>حسین حبیبیان</category>
                <author>حسین حبیبیان</author>
                <pubDate>Fri, 17 Apr 2020 13:35:17 +0430</pubDate>
            </item>
            </channel>
</rss>