Jak wiemy Microsoft powołał projekt udostępnienia kodu źródłowego .NET-a. O czym można poczytać na tym blogu .NET. Są tam opisane szczegóły dotyczące motywów działania, jak i planów na przyszłość, które są obiecujące.
Zachęcam do przeglądania tego udostępnionego kodu i nauki programowania poprzez podpatrywanie rozwiązań stosowanych przez kolegów z zespołu tworzącego .NET. Osobiście od jakiegoś czasu używam poniższych stron do badania jak klasy stosowane na co dzień są zbudowane.
- http://www.dotnetfoundation.org/projects – szukanie odpowiednich kodów źródłowych zaczynam właśnie od tej strony. Są tam wszystkie projekty związane z platformą .NET. Na każdej (prawie) stronie projektu jest link do kodów źródłowych.
W ostatnim poście pisałem o filtrach autoryzujących w MVC i używałem dziedziczenia po klasie AuthorizeAttribute. Aby podpatrzeć jak wygląda ta właśnie klasa wystarczy wejść na link powyżej wybrać ASP.NET MVC, Web API and Web Pages (Razor) potem Project Code Site i już jesteśmy w kodzie źródłowym.
Dla różnych projektów kody źródłowe są w różnych repozytoriach część jest na CodePlex a część na GitHub-ie.
Następnie wybieramy katalog src w którym zawsze znajdziemy kod źródłowy. Potem odszukujemy swoją klasę na podstawię przestrzeni nazw i gotowe. Klasa AuthorizeAttribute gotowa do przeglądania.
Dużo cennych uwag zawartych jest w komentarzach. Komentarze mogą ułatwić zrozumienie kodu jak i mogą wprowadzić w zakłopotanie. Nie które komentarze są bardzo ludzkie. Można o tym poczytać tutaj.
- http://referencesource.microsoft.com/ – na tej stronie można przeglądać kod źródłowy już samego .NET-a. Strona jest ok. Ale kod się przegląda ciężko. Na stronie poniżej cały ten kod jest zaimportowany do GitHub-a
- https://github.com/Microsoft/referencesource – tutaj cały kod z powyższego linku jest w formie przystępnego repozytorium dla każdego dewelopera. Kod przegląda się wygodnie i łatwo też szukać potrzebnych klas.
Następna strona dotyczy już samego projektu .NET Core. Wyjaśnienie niuansów miedzy .NET a .NET Core i tego jak to się wszystko ma do ASP. NET można znaleźć tutaj http://stackoverflow.com/questions/26908049/what-is-a-net-core
Krótko mówiąc .NET Core to wersja .NET Framework-a (obecna wersja 4.5.3), która będzie spełniała 3 założenia:
- będzie posiadać otwarty kod,
- będzie multi-platformowa,
- będzie możliwość jej dostosowania do własnych potrzeb.
- https://github.com/dotnet/corefx – cały projekt .NET Core w repozytorium github-a. Polecam zapisać się do powiadomień, ponieważ można wyczytać wiele ciekawych informacji od chłopaków zajmujących się rozwojem .NET Core-a
UPDATE:
- https://github.com/dotnet – w tym miejscu znajdziemy wszystkie projekty .NET Foundation