Microsoft udostępnił wersję pre-release rozszerzenia C# do VSCode - C# DevKit, które być może będzie w końcu używalne
https://devblogs.microsoft.com/visualstudio/announcing-csharp-dev-kit-for-visual-studio-code/
Z kluczowych informacji:
Kto na tym najbardziej zyska? Na pewno linuksiarze którzy nie chcą płacić za Ridera :) Ale z perspektywy użytkowników Windowsa to szerze mówiąc nie wiem. Edit: jak się drugi raz nad tym zastanowiłem to pewnie chodzi o GitHub Codespaces
Niedawno zainteresowałem się Airly, miałem ich aplikację na telefonie i zainteresowałem się czy mają API :D
Okazało się że tak i to na dodatek bardzo dobrze udokumentowane (link), bo mały re-search zobaczyłem że nie ma "wrapper'a" na to api w C# więc postanowiłem być pierwszy :P
Myśle że zrobiłem to dość dobrze zoptymalizowane, zaimplementowałem tam asynchroniczny handler wszystkich przepływających requestów od programisty (przez wywołanie metody), przez to zminimalizowałem możliwość powstawania freezow albo thread loopów w wrapperze. Ponad to dodałem kilka takich niestandardowych interfejsów które ułatwiają interakcje z api (np. branie wszystkich installacji na danej powierzchni poprzez specjalny interfejs). :) Klient pokrywa sie z dokumentacja w 100%
Sam projekt opublikowałem troche dawno ale wczoraj dałem go na nuget :D
Tutaj repozytorium, dodałem także dwa README jedno po angielsku i drugie po polsku (Airly jest głównie serwisem polskim ale posiada API także w języku anigelskim): Airly.Net (Github)
Za wszelkie recenzje oraz opinie szczerze dzięki ;)
Gra karciana dla programistów? Jaki ma ona związek z edukacją? Otóż Summon The JSON łączy w sobie grywalizację, techniki zapamiętywania i naukę programowania. To projekt, nad którym pracowaliśmy od listopada 2019 roku.
Obecnie dostępne są talie do języków: JavaScript, Python, C#, Java i PHP.
Każdy przepięknie ilustrowany deck w klimacie fantasy to:
Instrukcja zawiera 3 metody gry: od jednej do czterech osób. W grę mogą grać programiści, osoby uczące się programowania, a nawet nie-programiści. Przez co jest to rozrywka dobra dla każdego, a jednocześnie fajny sposób, by zarazić innych programowaniem.
To też wspaniały i naprawdę wyjątkowy prezent na święta!
Specjalnie dla fanów STJ na 4programmers promocja ważna do końca poniedziałku:
Dostawa z USA za zaledwie 17 zł. Oraz 14 dni na zwrot bez zadawania pytań!
Aby skorzystać z tej akcji, odwiedź stronę summonthejson.com, wybierz język (jeśli nie wiesz który - polecam JavaScript albo Python), oraz wpisz kod rabatowy: CYBER40
#programowanie #naukaprogramowania #programujzwykopem #javascript #python #php #java #csharp #dlaprogramistow #summonthejson
Jak zamowie jeden java i jeden python to dostane dopiero gdy java wyjdzie?
@Ephyron: Tak. W takim wypadku lepiej osobno zamówić jak chcesz mieć PY szybciej
Używasz ResolveUrl #csharp ? Słyszałeś o Cookieless?
Twój kod odwołuje się do skryptu #js
<script src="<%= ResolveUrl("~/Script.js") %>"></script>
Ciężko znaleźć tu błąd. Chyba, że wczytamy się w instrukcję.
Dawno temu nie każda przeglądarka obsługiwała ciasteczka.
Serwisy chciały jednak w jakiś sposób zapamiętywać stan sesji użytkownika.
Wymyślono więc, że informacje na ten temat będą przekazywane w adresie URL.
Adres:
http://example.com/aplikacja/home.aspx
Zamieniano na:
http://example.com/aplikacja/(A(XXXX)S(XXXX)F(XXXX))/home.aspx
W miejscu XXXX aplikacja automatycznie doklejała identyfikator sesji.
Dziś mało kto korzysta z tej opcji – ale ona dalej istnieje.
Paweł Hałdrzyński (autor badań) postanowił sprawdzić jakie znaki może zawierać identyfikator sesji – czyli co można użyć w miejscu XXXX.
.NET zwraca błąd 400 dla nieprawidłowych znaków – między innymi >, <, ?, %, $, )
.
Nie zwraca jednak błędu dla spacji oraz dla ` i ".
A to może prowadzić do błędów XSS. Dlaczego? Spójrz na przykład z góry.
W miejsce ResolveUrl wstawiamy złośliwe dane przekazane przez użytkownika:
http://example.com/aplikacja/(S(" onerror=alert`1` ))/home.aspx
Taki adres zostanie wyświetlony jako:
<script src="/(S(" onerror=alert`1` "></script>
Czyli przeglądarka spróbuje pobrać skrypt /(S(
. Jeżeli go nie znajdzie - wykona event onerror
- czyli wyświetli okienko alert.
Spodobało się? Zobacz film na YouTube albo przeczytaj wpis na moim blogu.
Jeśli kogoś interesuje tworzenie własnych zmiennych wariantowych w C#, może o tym przeczytać w moim najnowszym artykule:
Na końcu jest projekt w MS VS Community 2017 do pobrania.
Zapraszam
#csharp #artykuły #typ-wariantowy
To może jeszcze jedna ciekawostka z c# ;)
Jest możliwość nadawania zabronionych identyfikatorów np. class, struct, int itd.
// tylko w celach pokazowych, tzw. ficzer ma praktyczne zastosowanie opisane przez @Afish w komentarzach
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
var obj = new @class();
obj.@struct();
Console.WriteLine($"Nazwa klasy: {obj.GetType()}.");
}
}
class @class
{
public void @struct()
{
Console.WriteLine("4programmers");
}
}
Rezultat:
Hello World!
4programmers
Nazwa klasy: class.
#csharp
Ficzer w języku (jeśli używany ze zrozumieniem) nie jest problemem. Słowa rak i malaria
dotyczyło używania tego na siłę w kodzie, tak jak w przykładzie.
@somekind Kod nie miał za zadanie pokazać przykładowe użycie, tylko efekt zastosowania tego ficzera. Według mnie spec @Afish ma tutaj 100% racji. Myślę, że wypowiedzi w stylu ktoś tego używa w czysto siszarpowych projektach, ale to chyba niezbyt dobrze świadczy
wywodzi się z niezrozumienia intencji twórców języka c#.
Od samego początku jak ty wyszło to zacząłem się zastanawiać czy faktycznie uważali aby Omnisharpa nie zrobić zbyt dobrego aby teraz wyjść z czymś kozackim do C# ale nie OSS czy Free