کوڈ خود بخود پیدا کرنے کے لئے بصری اسٹوڈیو اور ٹیکسٹ ٹیمپلیٹ ٹرانسفارمیشن ٹول کٹ (ٹی 4) استعمال کریں۔

جب صفحے کی تازہ کاری :
صفحہ تخلیق تاریخ :

آپریٹنگ ماحول

Visual Studio
  • Visual Studio 2022
.جال
  • .NET 8.0
Windows
  • ونڈوز 11

ضروری شرائط

Visual Studio
  • یہ کچھ پرانے ورژن کے ساتھ بھی کام کرتا ہے
.جال
  • یہ کچھ پرانے ورژن کے ساتھ بھی کام کرتا ہے

سب سے پہلے

عام طور پر ، کوڈ بناتے وقت ، آپ سوچتے ہیں کہ آپ دستی طور پر حروف ٹائپ کرکے کوڈ بنائیں گے ، لیکن اگر آپ کوڈ یا ڈیٹا پر مبنی کوڈ بنانا چاہتے ہیں جسے کسی مخصوص قانون کے ذریعہ بنانے کی ضرورت ہے تو ، اسے خود بخود پیدا کرنے کے قابل ہونا آسان ہے۔ یہ سیکشن بیان کرتا ہے کہ کوڈ کو خود بخود پیدا کرنے کے لئے ٹیکسٹ ٹیمپلیٹ ٹرانسفارمیشن ٹول کٹ (ٹی 4) کا استعمال کیسے کریں۔

چونکہ ٹی 4 ایک اسکرپٹنگ فارمیٹ ہے ، لہذا ٹی 4 فائل بنانے کے فورا بعد بصری اسٹوڈیو میں کوڈ پیدا کرنا بہت آسان ہے۔ یہ لکھا گیا ہے کہ یہ خود بخود کوڈ پیدا کرتا ہے ، لیکن جو پیدا ہوتا ہے وہ صرف متن ہوتا ہے ، لہذا پروگراموں کے علاوہ ٹیکسٹ فارمیٹ جیسے ایکس ایم ایل اور جے ایس او این میں کچھ بھی پیدا کرنا ممکن ہے۔

اس ٹپ کا بنیادی مقصد اصل میں ٹی 4 میں خود بخود کوڈ پیدا کرنے کے اقدامات کی وضاحت کرنا ہے ، لہذا میں گہرائی میں ٹی 4 کی تفصیلات میں نہیں جاؤں گا۔ اگر آپ نے کبھی سی # میں کوئی پروگرام لکھا ہے تو ، آپ اسے فوری طور پر سمجھ جائیں گے۔ اگر آپ T4 کے بارے میں مزید جاننا چاہتے ہیں تو، براہ کرم سرکاری ویب سائٹ اور دیگر سائٹوں کو چیک کریں.

پیشگی شرائط

یہ ٹوٹکا مندرجہ ذیل کو فرض کرتا ہے:

  • Windows پر Visual Studio انسٹال
  • سی # کی تفہیم

ٹی 4 کو زیادہ تر منصوبوں میں استعمال کیا جاسکتا ہے ، سوائے چند کے ، لہذا آپ بنیادی طور پر تنصیب کے دوران اپنے کام کے بوجھ کا انتخاب کرنے کے لئے آزاد ہیں۔

ایک منصوبہ بنائیں

جیسا کہ پہلے ذکر کیا گیا ہے ، ٹی 4 کو زیادہ تر منصوبوں میں استعمال کیا جاسکتا ہے ، سوائے چند کے ، لہذا اس سے کوئی فرق نہیں پڑتا ہے کہ آپ کس قسم کا منصوبہ بناتے ہیں۔ اس صورت میں ، ہم کنسول ایپ کے لئے ایک پروجیکٹ بنا رہے ہیں۔

T4 فائل بنائیں (.tt)

نیا آئٹم شامل کرنے کے لئے پروجیکٹ فائل یا فولڈر پر دائیں کلک کریں۔

تمام ٹیمپلیٹس دیکھیں کے بٹن پر کلک کریں۔

بائیں طرف درخت سے "جنرل" اور درمیان میں فہرست سے "ٹیکسٹ ٹیمپلیٹس" منتخب کریں۔ فائل کا نام من مانی ہے۔

فائل بنانے کے فورا بعد ، آپ کو نیچے دیئے گئے ڈائیلاگ سے ملتا جلتا ڈائیلاگ نظر آ سکتا ہے۔ یہ اس وقت ظاہر ہوتا ہے جب T4 فائل خود بخود پیدا ہوتی ہے۔ جب بھی فائل محفوظ یا دیکھی جاتی ہے تو ٹی 4 فائلیں خود بخود پیدا ہوجاتی ہیں۔ اگر آپ خود کار طریقے سے پیداوار کے عمل کو انجام دینا چاہتے ہیں تو ، "ٹھیک ہے" بٹن پر کلک کریں۔ اگر آپ نہیں چاہتے کہ ڈائیلاگ ہر بار ظاہر ہو تو ، چیک کریں "یہ پیغام دوبارہ نہ دکھائیں"۔ براہ کرم نوٹ کریں کہ اگر ڈائیلاگ میں بیان کردہ ٹی 4 فائل میں کوئی غیر قانونی عمل بیان کیا گیا ہے تو ، اسے اس کے مطابق انجام دیا جائے گا۔

فائل شامل کرنے کے بعد ، آپ دیکھ سکتے ہیں کہ .tt فائل کو حل ایکسپلورر میں شامل کیا گیا ہے۔

فائل کے مندرجات درج ذیل ہیں۔

اگر آپ حل ایکسپلورر میں .tt فائل نکالتے ہیں تو ، آپ کو اسی نام سے ایک ٹیکسٹ فائل نظر آئے گی۔ یہ خود کار طریقے سے تیار کردہ فائل ہوگی۔ چونکہ ہم نے ابھی تک کچھ نہیں لکھا ہے ، لہذا فائل کے مندرجات خالی ہیں۔

خود کار طریقے سے تیار کردہ فائل کو .cs فائل بنائیں

اگر آپ T4 استعمال کر رہے ہیں تو ، آپ ممکنہ طور پر ڈیفالٹ .txt کے بجائے .cs ایکسٹینشن استعمال کرنا چاہیں گے ، کیونکہ آپ کے پروگرام کا کوڈ خود بخود پیدا ہوجائے گا۔ اس صورت میں ، .tttt فائل کھولیں اور output extension .cs اس کے ساتھ محفوظ کریں۔

خود کار طریقے سے تیار کردہ فائل میں اب .cs توسیع ہونی چاہئے۔ فائل کا نام خود .tt فائل جیسا ہی ہے ، لہذا اگر آپ اسے تبدیل کرنا چاہتے ہیں تو ، .tt فائل کا نام تبدیل کریں۔

فی الحال ، کچھ لکھیں اور اسے خود بخود تیار کردہ فائل میں آؤٹ پٹ کریں۔

T4 میں ، آپ جو کچھ لکھتے ہیں اس کے مندرجات بنیادی طور پر آؤٹ پٹ ہوتے ہیں جیسے وہ ہیں۔ <# ... #> ٹی 4 عمل ہے ، اور باقی اصل آؤٹ پٹ متن ہے۔

مثال کے طور پر ، آئیے اسے مندرجہ ذیل .tt فائل میں ڈالیں۔

<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ output extension=".cs" #>

public static class Sample
{
  public static void Hello()
  {
    Console.WriteLine("Hello T4!!");
  }
}

جب آپ اسے محفوظ کرتے ہیں تو ، خود کار طریقے سے تیار کردہ فائل کو بالکل اسی طرح آؤٹ پٹ کرنا چاہئے جیسے آپ نے اسے لکھا تھا۔

آؤٹ پٹ کوڈ ہے ، لہذا یقینا اسے Program.cs سے بھی بلایا جاسکتا ہے۔

خود بخود کوڈ پیدا کرنے کی کوشش کریں

جیسا کہ اوپر ذکر کیا گیا ہے ، میں نے تصدیق کی ہے کہ میں نے جو کچھ لکھا ہے وہ آؤٹ پٹ ہوگا ، لیکن یہ اس سے مختلف نہیں ہے جو میں نے عام طور پر لکھا تھا۔ اب ، آئیے اصل میں کوڈ کو خود بخود پیدا کرنے کے لئے ٹی 4 اسکرپٹ کا استعمال کریں۔ اسے بنانے کے مختلف طریقے ہیں ، لہذا براہ کرم یہاں صرف ایک مختصر وضاحت دیں ، اور پھر اسے اس طرح ری میک کریں جیسے آپ اسے بنانا چاہتے ہیں۔

اس بار ، مثال کے طور پر ، آئیے ایک ایسا طریقہ بنائیں جو ہر قسم کا پارس طریقہ سٹرنگ میں شامل کرتا ہے اور اگر اسے تبدیل نہیں کیا جاسکتا ہے تو مخصوص ڈیفالٹ ویلیو کو واپس ParseXXXX کرتا ہے۔ یہ صرف تخلیق کی ایک مثال ہے، لہذا اگر آپ کو لگتا ہے کہ کوئی حصہ ہے جس کی کمی ہے تو براہ مہربانی اسے شامل کریں.

اگر آپ تفصیلات کی وضاحت کیے بغیر سی # کو سمجھ سکتے ہیں تو ، اسے دیکھنا تیز ہوجائے گا ، لہذا میں پہلے مکمل کوڈ پوسٹ کروں گا۔

<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ output extension=".cs" #>

<#
  List<string> types = new(){"Int", "Short", "Long", "Float", "Double", "Decimal"}; 
#>

public static class ParseExtensions
{
<# foreach (var type in types) { #>
<#   var typeLower = type.ToLower(); #>
  public static <#= typeLower #> Parse<#= type #>(this string self, <#= typeLower #> defaultValue)
  {
    return <#= typeLower #>.TryParse(self, out var val) ? val : defaultValue;
  }
<# } #>
}

ہم جو کر رہے ہیں وہ یہ ہے کہ پہلی بار تخلیق کی جانے والی اقسام List کی وضاحت کریں ، اور پھر ان foreach کو اس تعداد میں طریقوں کو پیدا کرنے کے لئے تبدیل کریں۔ ٹی 4 کا اسکرپٹ حصہ سی # میں لکھا گیا ہے ، لہذا اگر آپ سی # کو سمجھتے ہیں تو ، آپ کو اسے سمجھنے کے قابل ہونا چاہئے۔

جب آپ ایسا کرتے ہیں تو ، مندرجہ ذیل کوڈ تیار ہوتا ہے:

public static class ParseExtensions
{
  public static int ParseInt(this string self, int defaultValue)
  {
    return int.TryParse(self, out var val) ? val : defaultValue;
  }
  public static short ParseShort(this string self, short defaultValue)
  {
    return short.TryParse(self, out var val) ? val : defaultValue;
  }
  public static long ParseLong(this string self, long defaultValue)
  {
    return long.TryParse(self, out var val) ? val : defaultValue;
  }
  public static float ParseFloat(this string self, float defaultValue)
  {
    return float.TryParse(self, out var val) ? val : defaultValue;
  }
  public static double ParseDouble(this string self, double defaultValue)
  {
    return double.TryParse(self, out var val) ? val : defaultValue;
  }
  public static decimal ParseDecimal(this string self, decimal defaultValue)
  {
    return decimal.TryParse(self, out var val) ? val : defaultValue;
  }
}

جو کچھ پیدا ہوتا ہے وہ کوڈ ہے ، لہذا آپ اسے اپنے پروگرام میں اسی طرح استعمال کرسکتے ہیں۔

ٹی 4 کے بارے میں تھوڑا اور

اگرچہ ٹی 4 اسکرپٹ کا حصہ سی # میں لکھا جاسکتا ہے ، لیکن ٹی 4 سی # کوڈ کو اصل میں پیدا ہونے والے سی # کوڈ سے الگ کرنا ضروری ہے۔ وہ حصہ جو یہ فرق کرتا ہے وہ ہے <# .... #> ۔ <# .... #> وہ کوڈ ہے جو اسکرپٹ کے طور پر انجام دیا جاتا ہے ، نہ کہ وہ کوڈ جو اصل میں ٹی 4 کے اسکرپٹ حصے میں آؤٹ پٹ ہوتا ہے۔

<# .... #> سی # کے مندرجات کی وضاحت نہیں کی گئی ہے کیونکہ وہ جیسے ہیں ، لیکن <# .... #> فریم کی کئی قسمیں ہیں۔ ہر ایک کو استعمال کرنے کے لئے مندرجہ ذیل طریقے ہیں.

کوڈ کی وضاحت
<#@ .... #> یہ بنیادی طور پر مختلف ہیڈرکے اعلان میں استعمال ہوتا ہے۔ یہ ٹی 4 کوڈ کے آغاز میں اور اس کے اعلان import میں استعمال کیا جاتا assembly ہے۔
<# .... #> کوڈ لکھیں جو T4 کے ذریعہ پروسیس کیا گیا ہے۔ اسے متعدد لائنوں میں تقسیم کیا جا سکتا ہے. اس رینج میں بیان کردہ کچھ بھی صرف ایک آپریشن کے طور پر کام کرتا ہے اور آؤٹ پٹ متن کو متاثر نہیں کرتا ہے۔
<#= .... #> یہ اس وقت استعمال ہوتا ہے جب آپ آؤٹ پٹ کے نتیجے کے طور پر متغیر جیسی قدر کو آؤٹ پٹ کرنا چاہتے ہیں۔ string text = "Sample"; مثال کے طور پر ، اگر آپ ایک متغیر <#= text #> لکھتے ہیں جسے کہا جاتا ہے تو ، آؤٹ پٹ ہوگا Sample ۔
<#+ .... #> کلاسوں اور طریقوں کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے. بنیادی طور پر ، یہ ٹی 4 فائل کے آخر میں لکھا گیا ہے۔

ٹی 4 ایڈیٹر کے بارے میں

اگر آپ کے پاس بصری اسٹوڈیو میں توسیع نہیں ہے تو ، .tttt فائل کھولنا سیاہ اور سفید متن میں بغیر کسی رنگ کے ظاہر ہوگا ، جو دیکھنے کے لئے مشکل ہے۔

ان میں سے کچھ آسانی سے پڑھنے کے انداز میں .tt فائلوں کے لئے توسیع ظاہر کرسکتے ہیں ، لہذا براہ کرم اپنی پسند کا ایک تلاش کریں۔ چونکہ یہ رضاکاروں کے ذریعہ بنایا گیا ہے ، لہذا مواد سال کے وقت اور بصری اسٹوڈیو کے ورژن پر منحصر ہوسکتا ہے۔ ایکسٹینشنز کے تحت ویژول اسٹوڈیو مینو سے ایکسٹینشنز شامل کی جاسکتی ہیں۔

یہاں میں نے ویژول اسٹوڈیو 2022 میں "ٹی 4 لینگویج" نامی توسیع کے ساتھ دیکھا۔