Шаг 41 - Net Classes первые вывод

О том какую роль они играют в NET читайте "Шаг 10 - Две основы Net". Итак, я попробую поделиться с Вами первыми выводами. Как было раньше. Раньше было WIN32 API совершенно не объектно-ориентированное, которое оперировало структурами и функциями. Вот так, например создавалась окно. Подробнее читайте "Шаг 4 - Окно Windows на С".

HWND hwnd;
MSG msg;
WNDCLASS w;
memset(&w,0,sizeof(WNDCLASS));
w.style = CS_HREDRAW | CS_VREDRAW;
w.lpfnWndProc = WndProc;
w.hInstance = hInstance;
w.hbrBackground = GetStockBrush(WHITE_BRUSH);
w.lpszClassName = "C Windows";
RegisterClass(&w);
hwnd = CreateWindow("C Windows","C Windows",WS_OVERLAPPEDWINDOW,
	10,10,600,480,NULL,NULL,hInstance,NULL);

Как видите просто заполняли структуры, писали огромные switch для обработки события. Поддерживать объектно ориентированное программирование или нет было дело каждого. При желании можно было использовать например MFC. Но MFC это была надстройка над WIN32 API. Искусственно созданные классы которые инкапсулировали в себя функции WIN32 API. Но это не было частью системы. Это была пристройка. Вот так создавалась окно. Подробнее смотрите "N/A".

class CMainWnd : public CFrameWnd
{
	public:	CMainWnd();
};

CMainWnd::CMainWnd()
{	
	Create(NULL,"Step1",WS_OVERLAPPEDWINDOW,rectDefault,NULL,NULL);
}

class CMyApp : public CWinApp
{
public:	CMyApp();	
	virtual BOOL InitInstance();			
};

CMyApp::CMyApp()
{
}

BOOL CMyApp::InitInstance()
{ 	
	m_pMainWnd=new CMainWnd();			
	ASSERT(m_pMainWnd);				
	m_pMainWnd->ShowWindow(SW_SHOW);		       
	m_pMainWnd->UpdateWindow();			      
	return TRUE;					
};

CMyApp theApp;

Дальше мы наследовали классы и добавляли им функциональность возводя свою надстройку над MFC. Теперь с появлением Net, классы стали находиться внутри самой среды выполнения. Можно сказать, что теперь MFC это часть NET. Мы берем системные классы, наследуем их и меняем свойства. И это можно сделать из любого языка программирования, который будет поддерживать NET. Просто представьте себе, что MFC доступен, например, из VB. Итак, идея в том, что среда платформа является объектно ориентированной. По настоящему, а не с помощью каркасных библиотек и языков программирования.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 02.10.2001