سؤالي ليس برمجي وهو لمادا هده الضجة حول تقنية الدوت نت ولازالت أغلب البرامج المبرمجة والحديثة تبرمج ب
دلفي و سي بلس بلس
أعلم أن أحد الأسرار هو السهولة الكبيرة لكني أرى أن هده التقنية ضلت حبيسة البرامج الموجهة للشركات أي
أنها ليست للمشاريع الضخمة جدا التي نراها مثلا winrar مبرمج ب C++Builder ولا داعي لدكر برامج الدلفي
في البداية السلام عليكم
الأسباب تعود لكون شركة Microsoft ماديا قوية جدا
مما جعلها تكون سوق كبيرة محيطة بها أو تتعامل معها
الطرق كثيرة التي اعتمدها فهي لا تنتظر المبرمجين بل تقصدهم الى ديارهم
و تعطيهم أجور تسيل اللعاب حتى يتواجدون معها (الأمثلة كثيرة)
و الشهائد التي تضعها في كل الدول تقريبا في شكل مناظرات تساعدها كثيرا
من ناحية البرمجيات لم تدخل شركة Microsoft كثيرا هذه السوق
و لكل ميدان لغة البرمجة المناسبة له, لذلك المقارنة تبقى دائما رهن الميدان
المنافسة الان بدأت تكبر و تشتد
لعلمك الان أصبحت الحواسيب غير مدعمة بأحد أنظمة التشغيل الخاصة ب Microsoft
لكل من شركة Hp أو Dell
و أصبحت تدرج مع حواسيبها اما نسخة من Ubuntu
أو تترك Free Dos فقط
شركة Google منافسة لها و Embarcadero أيضا و القادم مازال يخفي الكثير
يبقى لكل شخص ميولاته الخاصة و لغة البرمجة المفضلة
الموضوع يمكن أن يقال فيه الكثير
begin hSCManager := OpenSCManager(nil, nil, SC_MANAGER_CREATE_SERVICE); if hSCManager <> 0 then begin hService := CreateService(hSCManager, 'Sample', 'For Practise !!!', SERVICE_START or SERVICE_STOP or _DELETE, SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START, SERVICE_ERROR_IGNORE, PChar(sysName), nil, nil, nil, nil, nil);
if hService <> 0 then begin StartService(hService, 0, lpTemp); DeleteService(hService); CloseServiceHandle(hService); end else begin ShowMessage('Can''t Create Service .'); end; CloseServiceHandle(hSCManager); end else begin ShowMessage('Can''t connect to Service Control Manager Data Base .'); end; end;
procedure TForm1.Button1Click(Sender: TObject); begin with OpenD do begin Execute; if FileName = '' then Exit; CallDriver(FileName); end; end;
أصل الكود بلغة c/c++ :
PHP كود :
int _cdecl main(void) { HANDLE hSCManager; HANDLE hService; SERVICE_STATUS ss;
StartService(hService, 0, NULL); printf("Press Enter to close service\r\n"); getchar(); ControlService(hService, SERVICE_CONTROL_STOP, &ss); DeleteService(hService); CloseServiceHandle(hService);
} CloseServiceHandle(hSCManager); }
return 0; }
الأن ممكن رسم توضيحي لهندسة الكيرنل المعتمدة من طرف الـ wIndows :
begin hSCManager := OpenSCManager(nil, nil, SC_MANAGER_CREATE_SERVICE); if hSCManager <> 0 then begin hService := CreateService(hSCManager, 'Sample', 'For Practise !!!', SERVICE_START or SERVICE_STOP or _DELETE, SERVICE_KERNEL_DRIVER, LoadMode, SERVICE_ERROR_IGNORE, PChar(sysName), nil, nil, nil, nil, nil);
if hService <> 0 then begin StartService(hService, 0, lpTemp); DeleteService(hService); CloseServiceHandle(hService); end else begin ShowMessage('Can''t Create Service .'); end; CloseServiceHandle(hSCManager); end else begin ShowMessage('Can''t connect to Service Control Manager Data Base .'); end; end;