Integer ارسال شده در 15 ساعت قبل اشتراک گذاری ارسال شده در 15 ساعت قبل به نام خالق یکتا که به حل کردن باگ های پروژه هامون کمک کرد (الله) سلامممممممممممممممممممممممممممم عرض میکنم خدمت یک یک شومممما دوستان عزیز امیدوارم حالتون خوب باشه این تاپیک مطمعنم جالب ترین آموزشی میشه که توی عمرتون دیدید میخوایم یاد بگیریم چطوری یک وب سایت رو بدونه HTML/CSS/JS بسازیم! فقط با سی پلاس پلاس بی مقدمه میرم سراغ کار های اصلی 1- روش قدیمی (ولی پرکاربرد بدون نیاز به یادگیری موارد بیشتر) روش CGI (Common Gateway Interface) توضیح این روش: در این روش وب سرور به محض ورود میاد و درخواست ها رو به فایل کامپایل شده ی .cpp (که فرمتش .cgi هستش) میده و خروجی ای که توی .cpp نوشتین رو نشون کاربر میده مذیت ها: نیازی به یادگیری فریم ورک های سی پلاس پلاس برای طراحی/برنامه نویسی وب ندارین - کنترل کامل روی خروجی معایب: هر درخواست یک پروسه جدید میسازه و ترافیک رو زیاد میکنه - مدیریت Session ها و Routing ها سرویس میکنه مناسب: پروژه های کوچیک و آموزشی آموزش: آپاچی/ان جین ایکس (Nginx)/لایت اسپید (روی لینوکس) رو نصب کنید پوشه ی جدید به اسم "cgi-bin" بسازید یک فایل C++ (.cpp) داخلش قرار بدید (وقتی که کد هارو نوشتید) با GNU GCC کامپایلش کنید به فایل .cgi (کد): gcc fileName.cpp -o fileName.cgi g++ fileName.cpp -o fileName.cgi توضیح: fileName.cpp: اسم فایل سی پلاس پلاس -o: مخفف شده ی -Output یعنی خروجی fileName.cgi: اسمی که میخواید خروجی عه .cgi داشته باشه آموزش: چیز هایی که باید قرار بدید توی فایل .cpp عه خودتون: // لایبرری های مورد نیاز عه خودتون #include <iostream> // باید باشه تا بتونیم خروجی رو بسازیم int main () { // مکان شروع برنامه cout << "Content-type: text/html\n\n"; // به مرورگر میگه که این یک فایل HTML هستش و باید خروجی HTML بدی cout << "<html>\n\t" << "<head>\n\t\t" << "<title>A course by JavadInteger</title>\n\t" << "</head>\n\t" << "<body>\n\t\t" << "<h1>Welcome!</h1>\n\t" << "</body>\n" << "</html>"; /* توضیح کد: میاد و اچ تی ام ال رو باز میکنه و میره خط بعدی و یک تب میزنه تگ هد رو باز میکنه و میره خط بعدی و دو تا تب میزنه تایتل رو میزاره و میره خط بعدی و یک تب میزنه هد رو میبنده و میره خط بعد و تب میزنه بادی باز میکنه میره خط بعد دو تا تب میزنه یک هدر شماره ی یک میزاره ول کام میگه میبنده هدر یک رو بادی رو میبنده اچ تی ام ال رو هم میبنده و تمام */ return 0; // حتما عه حتما عه حتما یادتون باشه که بزارید این رو! } این روش یک روش تقریبا منسوخ شدست و فقط توی آموزش ها استفاده میشه حالا برای اجرا کافیه برید به: http://localhost/cgi-bin/yourFile.cgi 2- روش مدرن با فریم ورک های تحت وب ایه سی پلاس پلاس 1- CppCMS - یکی از قویترین ها (از نظر من: رتبه #2) مذیت ها: فریم ورک قدرتمند و سریع عه تحت وب پشتیبانی ها: قالب ها, فریم ها, کش ها و i18n (Internationalization) (توضیح مختصر: i18n مخفف Internationalization هستش, i عه اول و n آخر و 18 کاراکتر حذف شده از وسط i و n, به معنی این هستش که مثلا من الان مینویسم Hello, اگه یه ایرانی اومدش نگه Hello, بگه "سلام") مشابه: فریم ورک ها و لایبرری های جاوااسکریپت مثال ساده: #include <cppcms/application.h> #include <cppcms/application_pool.h> #include <cppcms/service.h> class MyApp : public cppcms::application { public: MyApp(cppcms::service &srv) : cppcms::application(srv) {} void main (std::string url) { response().out() << "<pre>Hello From JavadInteger</pre><br />\n<p>CppCMS Tutorial</p>"; } }; int main (int argc, char** argv) { cppcms::service srv(argc, argv); srv.application_pool().mount(cppcms::application_factory<MyApp>()); srv.run(); } این واقعیتش اولین پروژه ای بودش که با سی پی پی سی ام اس نوشتم, خیلی باحال بود حس اولین خروجی 2- Crow - یکی دیگه از قویترین ها (از نظر من: #1) مذیت ها: سبک مناسب برای: Rest API ها و سرویس های سبک مشابه: Flask, FastAPI مثال ساده: #include "crow_all.h"; int main() { crow::SimpleApp App; CROW_ROUTE(app, "/") ([](){ return "Hello from JAVADInteGer"; }); app.port(8080).multithreaded().run(); } ایشون میان و چاپ میکنن "Hello From JAVADInteGer", یکی از بهترین فریم ورک ها برای شماهایی که دارید تازه وارد این حوزه میشید (با سی پلاس پلاس) 3- Drogon - سوپر قوی عه تمامشون! (#-0) مذیت ها: مدرن ترینشون, برای ساخت یک سایت کامل استفاده میشه! از صفر! پشتیبانی ها: ORM, بلادرنگ (WebSocket), پلاگین ها مشابه: فریم ورک های پیشرفته dJango, Rails, Laravel یا Symfony مثال: #include <drogon/drogon.h> int main () { drogon::app().registerHandler("/", [](const drogon::HttpRequestPtr&, (std::function<void (const drogon::HttpResponsePtr &)> callback { auto resp = drogon::HttpResponse::newHttpResponse(); resp->setBody("Hello From std::JavadInteger::drogon"); callback(resp); }).run(); } یک نمونه ی ساده از Drogon, ولی خب ساده ترینشون رو پایین تر اعلام کردم: 4- Drogon - اولترا مگا لجندری پرمیوم بای جواد اینتیجر (#-99999) متاسفیم... فقط اولترا مگا لجندری پرمیوم ها دسترسی به این مطلب رو دارن ولی شما سطحت خیلی کمه (نیو) اما در حد معرفی میتونیم کمکتون کنیم "اولترا مگا لجندری پرمیوم" که "UltraMegaLegendaryPremium++" هم شناخته میشود, یکی از فریم ورک هایی هستش که جواد اینتیجر (عه خودمم که ) ساخته برای راحت تر شدن همه این چرت و پرت ها, تقریبا همه ی کد ها توی دراگون و cppCMS و حتی Crow اظافی هستن, اما خب فریم ورکی که من ساختم (با Boost:Asio) خیلی ساده تر و پرکاربرد تر از این حرفاس, تازه کلی قابلیت های باحال هم داره, مثلا میتونین بک اند رو هم با ساده ترین روش ممکن بنویسید باهاش, برای اطلاعات بیشتر بهم پیام بدین تا واستون بفرستم, خیلی قابلیت های بیشتری هم داره البته مثلا MVC, Middleware, Routing System, Security, DB و... ممنونم که همراهم بودید تا آموزش های بعدی شما رو به خدای بزرگ میسپارم خدا یار و نگهدارتون باشه! نقل قول The only things making you unhappy are your own thoughts :My Account :My Brothers لینک به دیدگاه https://forum.arsacia.ir/topic/85681-%DA%86%D8%B1%D8%A7-%D8%A8%D8%A7%DB%8C%D8%AF-%D8%A8%D8%A7-%D8%B3%DB%8C-%D9%BE%D9%84%D8%A7%D8%B3-%D9%BE%D9%84%D8%A7%D8%B3-%D9%88%D8%A8-%D8%B3%D8%A7%DB%8C%D8%AA%D9%85-%D8%B1%D9%88-%D8%A8%D8%B3%D8%A7%D8%B2%D9%85%D8%9F/ به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری...
Tommy ارسال شده در 6 ساعت قبل اشتراک گذاری ارسال شده در 6 ساعت قبل بنازم داداش نقل قول لینک به دیدگاه https://forum.arsacia.ir/topic/85681-%DA%86%D8%B1%D8%A7-%D8%A8%D8%A7%DB%8C%D8%AF-%D8%A8%D8%A7-%D8%B3%DB%8C-%D9%BE%D9%84%D8%A7%D8%B3-%D9%BE%D9%84%D8%A7%D8%B3-%D9%88%D8%A8-%D8%B3%D8%A7%DB%8C%D8%AA%D9%85-%D8%B1%D9%88-%D8%A8%D8%B3%D8%A7%D8%B2%D9%85%D8%9F/#findComment-893269 به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری...
Cervo ارسال شده در 6 ساعت قبل اشتراک گذاری ارسال شده در 6 ساعت قبل عالیی ناموسا نقل قول لینک به دیدگاه https://forum.arsacia.ir/topic/85681-%DA%86%D8%B1%D8%A7-%D8%A8%D8%A7%DB%8C%D8%AF-%D8%A8%D8%A7-%D8%B3%DB%8C-%D9%BE%D9%84%D8%A7%D8%B3-%D9%BE%D9%84%D8%A7%D8%B3-%D9%88%D8%A8-%D8%B3%D8%A7%DB%8C%D8%AA%D9%85-%D8%B1%D9%88-%D8%A8%D8%B3%D8%A7%D8%B2%D9%85%D8%9F/#findComment-893298 به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری...
ارسالهای توصیه شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید.
توجه: strong> مطلب ارسالی شما پس از تایید مدیریت برای همه قابل رویت خواهد بود.