Straight from my shoulders, I am going to bang on the target directly.
Here is that Bang :
I am planning to change the course structure of our June-to-December curriculum to add the newest advancement in Microsoft Windows Development, that is — WinRT. This is to include new style of Desktop apps, called “Metro/Store Apps” along with their painless porting to Microsoft Windows Tablets, Surfaces and Mobiles.
June 2014 to December 2014; Monday/Tuesday/Wednesday; 8.30 PM to 10.30 PM
Anandashram ( Next to NMV School, Bajirao Road, Near ABC Chowk, Pune ).
- Win32 :
- Event Driven Architecture ( Hello Windows )
- Using needed Win32 Command Line Developer Tools
- COM :
- DLL ClassFactory Server/Client,
- Containment ( Philosophy only ),
- Aggregation Server/Client ( if possible ),
- DLL Automation Server/Client,
- Using needed COM related Command Line Developer Tools
- WinRT :
- Basics ( Hello WinRT ), Under The Hood,
- C++11 & C++/CX ( As Needed ),
- XAML Syntax ( Whenever Needed Only ),
- Asynchronous Programming,
- WinRT Component,
- Using Windows Runtime Library
- Porting to Windows Phone 8
- Using needed WinRT Command Line Developer Tools
- IDE :
- Microsoft Visual Studio 2012/2013 on Windows 8.x
Rs. 10,000/- ( Rupees Ten Thousand Only )
It has been the tradition of the class since it’s inception that class fee is decided with the consent of the students. This is for the first time, I am declaring the panel of those students with their opinions Consolidated Replies about fees, who participated in the discussion process. After going through the student’s opinions, I chose to go for less than the average.
Some may find above announcement ‘well enough’. But for those who want to know “Why”,may continue from here ___
IF INTERESTED ONLY :
Why I want to stop teaching .net framework architecture ?
I have been teaching Win32, COM and .NET Framework, for this particular period of June-to-December, either in full-length mode ( 6 months each ) or in partial mode ( 2 + 3 + 1 = 6 months, all-in-one ), since the year 2002, which is a considerably long duration.
As any doctor has to go to the root of the disease to treat a patient, same applies to any other professions and therefore, for computer developers too.
I have always felt very sorry for our “most Indian IT-developer mentality” of choosing the EASY than choosing the RIGHT. They only give a very infamous argument, the so called “The Deadline”, to hide their incompetence. Currently very few have just heard about Win32 and many even don’t know ( or they do not want to know ) about COM and say that Win32 and COM are outdated. Are they really?
I have only one line to say about Win32 ( and that is enough ) : Win32 is the “only” doorway to enter the Windows OS. Thats it. Period.
COM is “the technology” which shoulders the burden of ‘being the key underlying and essential technology’ for the existence other mighty technologies/softwares such as :-
- - All DirectX Technologies
- - All the MS Office Applications
- - Media Player
- - Movie Maker
- - IIS, Internet Explorer
- - Windows Explorer, Windows Shell Extensions
- - MTS, Speech, Telephony, Messaging, Audio/Video Streaming
- - and many many more ( many are yet unknown to me )
.Net Lovers/Developers/labours, please hold your breath : CLR is itself written in Win32 and COM ( Don Box ).
In short Win32 and COM are so basic ( and hence many say it is so advanced ) that they are must for every aspiring Windows Developer.
This fact compelled me to study “the basics” and therefore obviously I followed the long way.
In Object Oriented Principles, every abstraction is made for “rapid development” but not for the “core development”.In other words, if you know the “core development”, then and then only you can go for the “rapid development”. Much in the same manner as any IDE is made for those who can manage the things without the IDE from the “command line”, but now want to go rapidly to save the time using IDE.
Today how many of us know each and every command that gets executed when we press any button in an IDE? We just don’t know. In my quite long and painful teaching experience, very few working individuals knew that cl.exe is the C/CPP compiler for Visual C++ IDE. That is why I first started learning and then teaching Win32 and COM.
I teach Win32, because, in my experience no other development philosophy can teach event mechanism, message loop, event handlers and callback mechanism, as elegantly as Win32,not even Cocoa, Java and .Net. Rather they say “message Loop is there but you don’t need to know it”. Actually speaking, the message loop is the Heart of any Window-based application ( Charles Petzold/Jeff Prosise ). How could any genuine developers live without knowing it?It is as absurd as imagining “a doctor who does not know anything about Heart” and as you know, first of all, I am a Doctor.
[ NOTE : In reality, learning above concepts is possible using XWindows/Xlib in Unix/Linux.But it is far easier and intuitive to learn them in Win32. Many will agree with me. ]
I teach COM, because, first, I love it; second, that was the technology I used in my first real-world project (API/SAPI/TAPI /DirectX ) and third, after facing complexity of COM ( as everybody says COM is difficult ), facing other complexities is NOTHING. My past COM students might recall the days of Aggregation /Automation /Marshalling.
The reason I was teaching .Net framework architecture ( without syntax ) was that the CLR itself is written Win32 and COM foundations ( Don Box ). Learning .Net is to apply the philosophy of ‘binary contract’ given by COM. Though I like philosophy of .Net framework,I personally never liked somebody to collect my garbage if I still have my hands and feet working well. So although I love “CLR Via C#” by Richter and “Advanced .Net Debugging” by Mario very much, I don’t like managed world as my area of development. It may be due to my inherent nature to live in ‘unsafe real world’ rather than in ‘verifiably type-safe matrix’.
Why am I switching myself to teach WinRT?
As per my reading, .Net is geared mainly towards WEB and not for the domains where “speed does matter” like System programming, fast/fluid/immersive/responsive UI, Graphics or DirectX and many more.
Therefore, there had been a prolonged demand for the Native Development Environment which has now been fulfilled by the Microsoft’s mobile technologies, better known as ‘WinRT’. And Microsoft once again has put its faith in its legendary, immortal, showstopper methodology i.e. ‘COM’ to build ‘WinRT’.
To quote straight from the horse’s mouth, ‘Everything old, comes back as gold’.
Surprisingly almost every article/video/book about WinRT, repeatedly convince their audience, that it is NATIVE and it is COM. Microsoft needed to shout “native, native and native” so loudly because of failure of .Net based WPF ( Reference : MSDN Channel 9 videos ). They also mention it very promptly that COM for WinRT is easier than legacy COM, though conceptually both are similar.
Finally, for many days I wanted to teach some technology which has many real-world applications of COM and yet it is easy to deliver to all sorts of students ( Teaching DirectX to everyone is difficult ) who are ready to embrace it with the breadth of Win32 and the depth of COM.
Oh Sorry, I forgot to mention that an "able" WinRT programmer, single handedly and independently, can deploy his/her Metro/Store Apps on Windows Store and can earn a lot of money by working from home.AFTER ALL, AT THE END OF THE DAY, EVERYTHING COMES TO MONEY !!!