Ostatnio wspomniałem o moim planie na stworzenie nowego języka programowania, który będzie “lepszym” C#/F#. Great# będzie językiem, w którym wcięcia są częścią gramatyki. Wobec tego potrzebuję narzędzia, aby taką gramatykę opisać i sparsować.
Czytaj dalej Gramatyki czułe na wcięciaKategoria: FSharp
Monady w F#
Podczas przygotowywania mojego warsztatu na GirlzCamp postanowiłem napisać sobie kilka monad w F#, w tym spróbować napisać transformator monad (co w ogólności mi się nie udało). Podczas moich zmagań natrafiłem na bibliotekę FSharpPlus, która jest mega!!
Czytaj dalej Monady w F#.NET Web III - Parametry GET i POST
W komunikacji HTTP występują różne czasowniki. Najbardziej popularne to GET i POST. Dzisiaj dowiemy się jak odczytywać parametry tych zapytań w naszej akcji.
Czytaj dalej .NET Web III - Parametry GET i POST.NET Web II - Filtrowanie requestów
Dzisiaj dowiemy się jak kierować zapytanie HTTP, żeby dotarło tam gdzie chcemy, czyli żeby obsłużył je właściwy kontroler. W tym celu dowiemy się jak działa Routing i filtrowanie zapytań GET/POST oraz tworzenie parametryzowanych ścieżek.
Czytaj dalej .NET Web II - Filtrowanie requestów.NET Web I - Nowy projekt
Dziś dowiemy się jak zacząć tworzenie aplikacji webowej, tworząc nowy projekt, które będziemy potem modyfikowali.
Czytaj dalej .NET Web I - Nowy projektMVC .NET web - moja prezentacja na DotnetConfPL
Tydzień temu miałem przyjemność wziąć udział jako prelegent w internetowej konferencji o tematyce dotnetowej DotnetConfPL. Poniżej możecie obejrzeć moją prezentację pod tytułem “Wzorzec projektowy MVC z porównaniem tworzenia aplikacji webowych w F# z Suave i w C# z ASP.NET”.
Tworzenie systemu sesji aplikacji webowej
Zacząłem ostatnio pracować nad aplikacją do certyfikowania sędziów dla Polskiej Ligi Quidditcha. Postanowiłem napisać ją w F# i Suave, mając na celu zrobić jak najlepszą robotę pod względem bezpieczeństwa.
Suave ma zaimplementowany system obsługi sesji, ale nieco mi się on nie spodobał, jako że przesyła dane sesji do klienta (zaszyfrowane), a ja chciałbym trzymać wszystkie dane po stronie serwera.
Czytaj dalej Tworzenie systemu sesji aplikacji webowejPrzetwarzanie klawiatury w SadConsole
W ostatnim poście mieliście szansę zobaczyć już jaką formę będzie miała moja funkcja przetwarzająca input z klawiatury. Teraz nieco wgłębimy się w temat.
Czytaj dalej Przetwarzanie klawiatury w SadConsoleUnikanie cyklicznych zależności
Zależności określają, jak klasa lub moduł wykorzystuje inną klasę lub moduł. W zakresie globalnym biblioteki mają zależności, korzystając z funkcjonalności innych bibliotek. Tylko te zależności mogą się rozrosnąć i wprowadzić dodatkową złożoność w naszej aplikacji.
W F# nie można tworzyć cyklicznych zależności ze względu na kolejność kompilacji kodu. Ale jak ich omijać podczas programowania?
Czytaj dalej Unikanie cyklicznych zależnościSztuka wrappowania
Bardzo często pracując z cudzą biblioteką zetkniemy się z tym, że dane rozwiązanie jest szersze, bądź inaczej zrobione, niż to czego potrzebujemy. Dlatego warto napisać wrapper, czyli jakiś interfejs dostępu do funkcjonalności biblioteki, ale na naszych warunkach.
Czytaj dalej Sztuka wrappowaniaPierwsze kroki z SadConsole
Czas zacząć pracę na grą Mars-Buggy. Najpierw zobacz mój post Mars-Buggy - Daj Się Poznać 2017. Moje posty będą miały nieco tutorialową formę, aby ułatwić mi samemu pracę z SadConsole w przyszłości.
Czytaj dalej Pierwsze kroki z SadConsoleF# na Azurze
Azure jest świetną platformą chmurową, ma dużo opcji i dość sensowny panel administracyjny. Jego główną wadą jest cena, choć dla dużych firm nie będzie ona stanowiła problemu. Studenci zaś mogą skorzystać z darmowej oferty Microsoft Azure for Students.
Jednak aby uruchomić moją aplikację F# + Suave na Azurze musiałem się nieco namęczyć.
Czytaj dalej F# na AzurzeAnalizowanie pytań na StackOverflow
Wpadłem ostatnio na pomysł, aby przeanalizować jakie pytania są najczęściej zadawane na StackOverflow. Ponieważ wiele słyszałem, jaki to F# jest pomocny w analizowaniu danych, to postanowiłem napisać w nim skrypt, który mi pomoże.
Czytaj dalej Analizowanie pytań na StackOverflowMonady i wyrażenia komputacyjne
W programowaniu funkcyjnym pracuje się czesto znacznie bliżej matematyki, a co za tym idzie pewne pojęcia brzmią bardzo skomplikowanie choć wcale takie być nie muszą. Dziś zobaczymy czym jest monada oraz jak F# ułatwia nam korzystanie z monad przez wyrażenia komputacyjne.
Czytaj dalej Monady i wyrażenia komputacyjneDostęp do danych w F#
Ostatnio zacząłem pisać aplikację webową w F# i Suave, w której korzystam z bazy danych. Poniżej opiszę dwie metody, za pomocą których można się odwołać do danych z bazy.
Czytaj dalej Dostęp do danych w F#F# web z Suave
Najpopularniejszym frameworkiem webowym dla aplikacji .NET jest ASP.NET MVC. Pracując w C# sprawdza się on się świetnie, ale bazuje na obiektowym paradygmacie programowania, co nie do końca współgra z funkcyjnym podejściem F#.
Na szczęście jest Suave, który pozwala na proste i funkcyjne pisanie aplikacji w F#.
Czytaj dalej F# web z SuaveAplikacja To Do - Xamarin
Wczoraj opisałem pusty projekt, który dostajemy w Visual Studio, tworząc projekt F# > Android. Dziś czas na zbudowanie krok po kroku naszej pierwszej aplikacji - prostej listy zadań.
Czytaj dalej Aplikacja To Do - XamarinXamarin i F# - Wprowadzenie
Dziesiejszym rynkiem rządzą aplikacje mobilne. Zazwyczaj tanie (względnie), ale przy dużej ilości użytkowników twórcy zarabiają miliony. Dlatego warto umieć tworzyć aplikacje mobilne. A najlepiej tworzyć je na platformie, którą się zna i lubi - .NET
Kiedy pierwszy raz chciałem zrobić aplikację na Androida, jakieś 3 lata temu, sięgnąłem po Cordovę, bo znałem podstawy HTML, i średnio mi to wyszło. Jednak teraz mając do dyspozycji Xamarin, wszystko wygląda inaczej.
Czytaj dalej Xamarin i F# - WprowadzenieProgramowanie obiektowe w F#
F# jest językiem głównie funkcyjnym, ale działa w oparciu o platformę .NET, która jest zorientowana obiektowo. Jeśli piszemy kod w F# do użycia w F# to nie potrzebujemy zbytnio klas i interfejsów, ale jeśli chcemy wykorzystać fsharpową bibliotekę w C# to musi ona udostępnić klasy. Więc powiemy dziś sobie o klasach.
Czytaj dalej Programowanie obiektowe w F#Wprowadzenie do F# - Warsztat
Na kolejnym spotkaniu Grupy .NET przerobiliśmy parę zadań aby oswoić się z funkcyjnym programowaniem w F#. Poniżej nagranie ze spotkania oraz materiały.
Czytaj dalej Wprowadzenie do F# - WarsztatWprowadzenie do F#
W tym roku postanowiłem zacząć spotkania Grupy .NET MIMUW od wprowadzenia do języka F#. Poniżej znajdziecie krótki wstęp, link do prezentacji oraz nagranie ze spotkania.
Czytaj dalej Wprowadzenie do F#Fedirector
Od pewnego czasu miałem pomysł zrobić małą aplikację do przekierowywań, którą mógłbym umieścić na serwerze i skracać sobie URLe. Stwierdziłem, że to dobra okazja aby znowu pobawić się F#.
Wszedłem na stronę fundacji F#, na której znalazłem potrzebne mi narzędzie Suave.
Czytaj dalej FedirectorTesty z F#
Już od jakiegoś czasu miałem oko na spróbowanie F#. Połączenie szybkiego programowania funkcyjnego wraz z potężną biblioteką .NET brzmi bardzo fajnie i takie jest w rzeczywistości.
Zobaczyłem, że NUnit ma w swoich przykładach projekt w F#, więc postanowiłem przepisać moje obecne testy na F#. Nie przewidziałem jednak trudności wynikających z nieznajomości tego języka…
Czytaj dalej Testy z F#