نمایش نتایج 1 تا 13 از 13

نام تاپیک: سوال در مورد ATL

  1. #1
    کاربر جدید آواتار khasteh
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    پیش لپ تاپم هرکجا که شد!
    پست
    22

    سوال در مورد ATL

    با سلام به همه دوستان و ممنون از همه
    راستش یه سوال بدجوری منو درگیر کرده و اون اینه با توجه به اینکه در برنامه ها گاهی هدر های atl رو استفاده میکنیم چرا هیج جا سخن نیست از atl .
    نمی دونم اینجا مناسبه این سوال هست یا خیر
    اصلا ATL چیه ؟
    کاربرد هاش کجاست ؟
    تو ایران چه جوریه وضعش ؟
    ممنون از همه و بخصوص مدیر بخش .

  2. #2
    کاربر دائمی آواتار A_Salimi
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    North khorasan-Esfarayen
    پست
    372

    نقل قول: سوال در مورد ATL

    اصلا ATL چیه ؟
    در حقیقت ATL همان (Active Template Library) یکسری الگو بر پایه کلاسهای پایه ای مایکروسافت است که شما به آسانی و سرعت می توانید اشیای com (Component Object Model) را خلق نمایید .ساپورت کردن com در visual C++‎ این اجازه را به برنامه نویسان میدهد که آبجکت های متنوع com و کنترل های اکتیوایکس را ایجاد نمایند.

    کاربرد هاش کجاست ؟
    یک کتابخانه است که شما می توانید از آن استفاده کنید و نه یک زبان برنامه نویسی که کاربرد مجزا داشته باشد.

    این لینک را هم ببینید

  3. #3
    کاربر جدید آواتار khasteh
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    پیش لپ تاپم هرکجا که شد!
    پست
    22

    نقل قول: سوال در مورد ATL

    ممنون ولی atl server و کلا سایت هایی که می تونن بر اسا س C++‎ , com باشند اونا چی ؟
    من هم قبول دارم که یک زبان برنامه نویسی نیست و یک کتابخانه است مثال واضح هم همین mfc خودمونه .ولی با اون خیلی کارا و اپلیکشن های عظیم و کار امدی مینویسن. در کل آیا نمیشه یه شناخت از atl داشت؟
    آیا ما نمی تونیم مثلا یه جایی تو یک پروژه رو با atl بنویسیم و زودتر نتیجه دلخواه و بگیریم؟ هرچند معتقد به کارآمدی پروژه و نیاز ها و زمان و هزینه هستم .

  4. #4
    کاربر دائمی آواتار A_Salimi
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    North khorasan-Esfarayen
    پست
    372

    نقل قول: سوال در مورد ATL

    Atl server در حقیقت مجموعه ای از کلاسهای native در C++‎ است که به برنامه نویسان اجازه می دهد که برنامه های وب ، سرویس های وب XML و دیگر برنامه های سرور را خلق نمایید .

    برای شروع و استفاده از Atl server شما می توانید ATL Server tutorial را مطالعه نمایید و یا در مورد ATL
    Server architecture اطلاعاتی را کسب نمایید .

  5. #5
    کاربر جدید آواتار khasteh
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    پیش لپ تاپم هرکجا که شد!
    پست
    22

    نقل قول: سوال در مورد ATL

    وب سایتی رو سراغ دارین که با مولفه های ATL و تحت native C++‎ نوشته شده باشد؟

  6. #6

    نقل قول: سوال در مورد ATL

    نقل قول نوشته شده توسط khasteh مشاهده تاپیک
    وب سایتی رو سراغ دارین که با مولفه های ATL و تحت native C++‎ نوشته شده باشد؟
    سلام.
    ATL ربطی به طراحی وب سایت نداره - اگر چه Component های ایجاد شده بر اساس تکنولوژی COM (که میتونه بر پایه MFC یا ATL نوشته بشه) رو میشه از طریق SOAP Toolkit بصورت یک Web Service در معرض دسترس قرار داد یا IIS رو وادار به Handle کردن HTTP Request ها و Dispatch کردن اونها بین Request Handler های یک Web App کرد.

    اما اینایی که گفتم رو میتونید نادیده بگیرید، چون هدف اصلی ATL دادن مجموعه ای از کلاسهای Template ای به برنامه نویسها هستش که حداقل Footprint (یا همون سربار) رو در طراحی Component هاشون داشته باشن. وقتی میگم Component، منظورم همون Component های تولید شده بر مبنای COM بطور اخص هستش!

    اما موارد استفادش چیه؟ پاسخ به این سوال واقعا دشواره. بخاطر نحوه شگفت انگیز طراحی اونها، شما میتونید از Component هایی که تحت این تکنولوژی طراحی میشن، همه جور استفاده ای بکنید و مهمتر از اون اینکه شما محدود به یک زبان برنامه نویسی نیستید. میتونید اونها رو بصورت

    • NT-Service اجرا کنید
    • در IE از اونها استفاده کنید
    • Web Service هایی بر پایه COM داشته باشید
    • Standalone EXE Server هایی داشته باشید که بر اساس درخواست استفاده کننده Load میشن
    • DLL هایی داشته باشید که svchost اونها رو load کنه (که به svchost یک Surrogate میگن)
    • و ...

    اما شگفت انگیزترین مساله در مورد COM ها، امکان استفاده از Component های طراحی شده، در زبانهای و محیطهای برنامه نویسی دیگه هستش. بعنوان مثال، شما میتونید Component ای رو که طراحی کردید در .NET و از طریق InterOp، یا در Visual Basic (بشرط Implement کردن IDispatch)، یا در دیگر محیطهای مورد نظرتون اجرا کنید.

    مزایای استفاده از این تکنولوژی وقتی بیشتر به چشم میاد که بخواهید سیستمی مبتنی بر این تکنولوژی بصورت Distribute طراحی کنید. نیاز مبرم چنین سیستمهایی، امکان کنترل Transaction هاست، که با استفاده از MSDTC بطرز هیجان انگیزی این مساله در COM+ حل شده و بخشی از Enterprise DNA مایکروسافت رو تشکیل داده.

    در هر حال، اگر هدفتون طراحی یه Web Site، Web App یا حتی یک Web Service هستش، این تکنولوژی چیز خاصی رو براتون به ارمغان نمیاره. در حال حاضر تکنولوژیهای دیگه ای هستن که در این زمینه، گوی سبقت رو از بقیه ربودن و مجال استفاده از تکنولوژیهای پیچیده ای مثل COM رو در این عرصه کاملا از بین بردن.

    اگر به CPP کاملا مسلط هستید، پیشنهاد میکنم کتاب The Essence of COM رو بخونید! کتابهای ATL Internals و Inside ATL (البته نمیدونم واقعا اینها در حال حاضر در دسترس باشن یا نه، چون حداقل مال 9 سال پیش هستن) هم کتابهای فوق العاده ای هستن که شما رو در سطح بسیار خوبی با این تکنولوژی آشنا میکنن.

  7. #7

    نقل قول: سوال در مورد ATL

    خبر بد اینه که Microsoft بیشتر کتابخانه ATL Server رو به صورت shared source به Codeplex منتقل کرده به همین دلیل اثری از ATL Server در VS2008 و MSDN نیست. اما بعضی از کلاسهای ATL Server هم به ATL انتقال داده شدن.
    در ضمن سالهاست که ATL و به خصوص کلاسهای Utility اش جزء جدایی ناپذیر برنامه نویسی MFC هستن.

    یاد روزهای خوب برنامه نویسی Native تو Windows بخیر...

  8. #8

    نقل قول: سوال در مورد ATL

    خبر بد اینه که Microsoft بیشتر کتابخانه ATL Server رو به صورت shared source به Codeplex منتقل کرده به همین دلیل اثری از ATL Server در VS2008 و MSDN نیست.
    از اول هم ایده گذاشتن پروژه های ATL Server هنگام new کردن یه پروژه، در VS2005 به نظر من کار درستی نبود. همونطور که قبلا هم گفتم، ATL برای مقاصد دیگه ای ساخته شده بود و اصلا نباید قاطی تکنولوژیهای وب (بدین شکل) می شد.

    در ضمن سالهاست که ATL و به خصوص کلاسهای Utility اش جزء جدایی ناپذیر برنامه نویسی MFC هستن.
    ATL ربطی به MFC نداره و ترکیب این دو تا جالب نیست (اگرچه امکانپذیره). اگه قراره از MFC استفاده بشه، کلاسهای فربهی وجود داره که همون کارایی رو در اختیار کاربر بگونه ای دیگه قرار میده. هدف اصلی هنگام استفاده از ATL، بهره مند شدن از Footprint پایین اونه که اگه با MFC ترکیب بشه، دیگه اون هدف میسر نمیشه.

    اما، اگر در جمله ای که گفتید، جای ATL کلمه STL رو بذاریم، جمله اتون خیلی بهتر و منطقی تر خواهد بود. STL بهمراه کلاسهایی که با ایده اولیه "کارایی بالا" طراحی شدن، تو MFC خیلی به درد میخوره و جایگزین های بسیار خوبی برای کلاسهایی از قبیل CMap، CArray و ... در اختیار برنامه نویس قرار میده.
    آخرین ویرایش به وسیله mehdi.mousavi : دوشنبه 16 دی 1387 در 18:22 عصر

  9. #9

    نقل قول: سوال در مورد ATL

    ATL ربطی به MFC نداره و ترکیب این دو تا جالب نیست (اگرچه امکانپذیره). اگه قراره از MFC استفاده بشه، کلاسهای فربهی وجود داره که همون کارایی رو در اختیار کاربر بگونه ای دیگه قرار میده. هدف اصلی هنگام استفاده از ATL، بهره مند شدن از Footprint پایین اونه که اگه با MFC ترکیب بشه، دیگه اون هدف میسر نمیشه.
    اول اینکه من نگفتم MFC رو تو پروژه های ATL استفاده کنیم بلکه گفتم کلاسهای ATL رو تو پروژه های MFC استفاده کنیم. لطفا پست رو درست بخونید بعد جواب بدید.
    جالبه که شما در مورد منطقی بودن جمله من نظر میدید در صورتی که حتی جمله من رو درست نخوندید و یا متوجه نشدید. این جمله شما که "ترکیب این دو تا جالب نیست" غیر منطقیه، شما باید مشخص کنید که استفاده از کلاسهای ATL در پروژه های MFC جالب نیست و یا استفاده از MFC در پروژه های ATL مثل ساختن COM Object ها ساختن ActiveX ها و یا Type Library ها جالب نیست. در مورد استفاده از MFC در پروژه های َATL تا حد زیادی با شما موافقم اما در مورد استفاده از ATL در پروژه های MFC باید بگم که هر برنامه نویس با تجربه MFC این رو میدونه که این کار نه تنها ضرری نداره بلکه بسیار مفیده و گاهی اوقات اجتناب ناپذیره.

    در مورد مربوط بودن MFC با ATL باید بگم که از زمان VC++‎.Net2002 به بعد ATL و MFC دارای کلاسهای مشترک زیادی هستند که همگی اونها در واقع در هدرهای ATL تعریف شده اند به این کلاسها میگن کلاسهای مشترک ATL و MFC و لیست اونها به شرح زیره:
    CFileTime در هدر atltime.h
    CFileTimeSpan در هدر atltime.h
    CImage در هدر atlimage.h
    COleDateTime در هدر ATLComTime.h
    COleDateTimeSpan در هدر ATLComTime.h
    CPoint در هدر atltypes.h
    CRect در هدر atltypes.h
    CSimpleStringT در هدر atlsimpstr.h
    CSize در هدر atltypes.h
    CStrBufT در هدر atlsimpstr.h
    CStringData در هدر atlsimpstr.h
    CStringT در هدر atlstr.h و cstringt.h اگر هدر afxstr.h رو نگاه کنید میبینید که از cstring.h و atlcore.h توش استفاده شده.
    CTime در هدر atltime.h
    CTimeSpan در هدر atltime.h
    IAtlStringMgr در هدر atlsimpstr.h
    CFixedStringT در هدر cstringt.h
    در کل تقریبا توی هر هدر MFC که نگاه کنی رد پای ATL رو پیدا میکنی.
    در ضمن برای بعضی کارها که بسیار زیاد در برنامه نویسی ویندوز پیش میان ATL دارای کلاس و تابع هست که در MFC نیست و عاقلانه است که از کلاس ATL مربوطه استفاده کنی. در واقع چون این کلاسها در ATL پیاده سازی شدند دیگه در MFC پیاده سازی نشدند چون همون طور که گفتم ATL عضو جدا ناشدنی از MFC شده و دلیلی برای پیاده سازی دوباره اونها در MFC وجود نداره. برخی از این کلاسها عبارتند از:
    CPath
    CRegKey
    CAutoPtr که مشابه همون auto_ptr در C++‎ Standard Library هستش
    CComPtr
    CComQIPtr
    CHandle
    ماکروهای CT2AEX، CW2TEX ،CW2CTEX ،CT2CAEX و کلاسهای مربوطشون که کار تبدیلات رشته های متنی رو انجام میدن.
    ATL OLE DB Consumer Templates که کلا در هدرهای ATL تعریف شدن و من خودم تمامی برنامه های مبتنی پایگاه داده که با MFC نوشتم رو با این Template ها نوشتم.
    و خیلی کلاسها، ماکرو ها و توابع دیگه الان یادم نیست.

    مگر اینکه شما به هیچ عنوان از این امکانات استفاده نکنید. (بازهم خود MFC از ATL استفاده میکنه)
    قبل از جواب دادن بیشتر دقت کنید.
    آخرین ویرایش به وسیله C++‎Lover : سه شنبه 17 دی 1387 در 00:25 صبح

  10. #10

    نقل قول: سوال در مورد ATL

    از اول هم ایده گذاشتن پروژه های ATL Server هنگام new کردن یه پروژه، در VS2005 به نظر من کار درستی نبود. همونطور که قبلا هم گفتم، ATL برای مقاصد دیگه ای ساخته شده بود و اصلا نباید قاطی تکنولوژیهای وب (بدین شکل) می شد.
    Microsoft تنها پروژه های ATL Server رو از New Project Wizard حذف نکرده بلکه قسمت بزرگی یعنی بیشتر ATL Server رو به صورت shared source به Codeplex منتقل کرده و بقیه رو که کاربرد بیشتری در برنامه نویسی غیر Web Server داشتن رو به ATL منتقل کرده. یعنی اینکه ATL Server دیگه توسط Microsoft پشتیبانی نمیشه. تا جایی که من خبر دارم در CodePlex هم کاری روش انجام نگرفته و در همون مرحله ای هستش در VC2005 SP1 بود. تاسف انگیزش اینه که امکانات خوبی مثل Cryptography ، Regular Expression و SOAP based services که زمانی به طور پیش فرض در VC بودن و توسط Microsoft پشتیبانی میشدن الان دیگه نیستن.
    البته برای همه اینها راه حلهای دیگه ای هم وجود داره. در کل برای هر چیزی تو این دنیا راه حلهای دیگه ای هم وجود داره.

  11. #11

    نقل قول: سوال در مورد ATL

    سلام.
    هنگام نوشتن مطلب، من مطلقا حواسم به ATL 7.x نبود و مطالبی که گفتم با توجه به ATL 2.1 و ATL 3.0 عرض کردم. و درسته، استفاده از MFC در پروژه های ATL کاملا بی مورده. مایکروسافت هم قدم درستی در این زمینه برداشت و کلاسهای Framework-Independent ای ایجاد کرد که بشه از اونها در همه Framework ها استفاده کرد (به خاطر ماهیت Template ای اونها). اما این کلاسها قبل از ATL 7.0 وجود نداشت، و MFC و ATL کاملا Loosely Coupled بودن و اونموقع دنیا بگونه ای دیگه میچرخید.

  12. #12
    کاربر جدید آواتار khasteh
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    پیش لپ تاپم هرکجا که شد!
    پست
    22

    نقل قول: سوال در مورد ATL

    سلام با تشکر از دوستان خوب
    یه مقایسه کوچولو دیدم بین ATL و ASP.NET البته برای Web Service دیدم بد نیست اینجا بذارم.
    http://www.codeproject.com/KB/webser...omparison.aspx

  13. #13

    نقل قول: سوال در مورد ATL

    با سلام

    میبخشید به نظر شما پروژه ATL روی چه بروزرهایی اجرا میشه آیا این امکان وجود نداره که همه browser ها اون را ساپورت کنند.
    لطفا راهنمایی کنین .
    خیلی ممنون.

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •