Info Net - porady etc

0

Hej.
Od jakiegoś czasu już pisze różne mniejsze projekty, które potem pojawią się na stronie, którą również dopiero będę stawiać :P
Będą tam między innymi różne klasy do wykorzystania jak i rozszerzenia ich funkcjonalności jak i programy mojego autorstwa. A

raczej programiki. No mniejsza z tym.

Dziś chcę tylko zapytać o doradzenie w dodaniu nowych funkcji do mini-programu zrobionego w trzech celach:

  • Takiego "bawienia" się i zdobycia kolejnych doświadczeń w C#.
  • Zrobienia programiku na stronę.
  • Zrobienia czegoś co być może niektórym się przyda.

Program, który chcę przedstawić to aplikacja do sieci.
Funkcje jakie posiada widać na screenie:

user image

Nie są może jakoś specjalnie Boskie, raczej standardowe.
Nic specjalnego, takie małe coś.

Mam jednak prośbę nawet nie tyle o przetestowanie programu co o wypisanie liczby opcji jakie byście chcieli widzieć w tego typu

programie.

W miarę możliwości także o napisanie z jakich klas mógłbym skorzystać.

Być może niektórzy z Was pomyśleliby o funkcji "WhoIs". Takową zrobiłem jednak serwer WhoIs, który dobrze działał to:
whois.internic.net
niestety ów serwer ma bazę tylko takich domen:
.aero, .arpa, .asia, .biz, .cat, .com, .coop, .edu, .info, .int, .jobs, .mobi, .museum, .name, .net, .org, .pro, .travel
nie posiada jednak najważniejszej dla mnie ".pl".

Może przy okazji też coś byście na to poradzili.

No i na koniec mały screen z działania :)

user image

oraz DOWNLOAD :P
http://hotfile.com/dl/114202469/06c2004/InfoNet.exe.html

0

Taka rada - dbaj o swoją własność intelektualną. W przypadku aplikacji natywnych można wybaczyć nieużywanie protektora, ale tutaj każdy komu się będzie chciało może odczytać kod źródłowy za pomocą paru kliknięć...

I na przykład dowiedzieć się że nazwa assembly to ConsoleApplication1 (nie chciało ci się zmieniać? :) ).
Doświadczenia z PhotoPola widzę zaowocowały, bo w klasie głównej masz metody typu Zdarzenie1, Zdarzenie2, Zdarzenie3 i tak do 12. Żeby było śmieszniej, reszta metod jest po angielsku. IPAdres przemilczę :>. (I metodę GetCock :O )
Nie przesadzaj z publicznymi polami - w C# Właściwości nic nie kosztują a są dobrym zwyczajem - zawsze możesz na produkcji je podmienić na pola - jeśli będzie to coś dawać.
I nie łapie co robi klasa WebNew dziedzicząca po klasie Program (głównej)...

Przykład jednego z najbrzydszych kodów jakie można sobie wyobrazić:

    Console.WriteLine("1 - Daj Informacje o serwerze");
    Console.WriteLine("2 - Sprawdź sw\x00f3j host i IP");
    Console.WriteLine("3 - Podaj informacje o IP");
    Console.WriteLine("4 - Podaj informacje o interfejsach sieciowych");
    Console.WriteLine("5 - Podaj statystyki interfejs\x00f3w sieciowych");

Gdzie indziej, rozumiem, parsujesz sobie inta i w switchu wybierasz wywoływaną metodę (Zdarzenie1..Zdarzenie12) -> ja bym proponował zrobić raczej listę dostępnych zdarzeń (gdzie zdarzenie to struktura z polami np. string identyfikator i Action delegat na funkcję do wykonania. Wtedy wypisywanie skraca się do foreacha a sprawdzenie zdarzenia do pobrania elementu na indeksie i wywołania delegata.

Na razie wystarczy czepiania się :P

PS. interfejs nie wygląda aż tak źle, ale włosy mi stają dęba na myśl o tym kodzie najeżonym pewnie SetConsoleColor() ...

0

Dziękuję za celną krytykę :)
Owszem te "zdarzenie1()" do 12 mi się nie podoba, ale to jest tymczasowe do czasu rozbudowania programu tak na serio. Teraz ta cyferka, że to version 1.0 to dla picu bo do 1.0 jeszcze sporo brakuje.

Ach no i te dziedziczenie też jest bez sensu. Tzn wcześniej pisałem program nieco inaczej i faktycznie dziedziczenie było sensowne a wręcz bardzo dobre, teraz jest niepotrzebne i miałem to wczoraj usunąć ale zapomniałem :P

co do SetConsoleColor() to wygląda to nawet ładnie bo zrobiłem to tak:

static void WriteInfo(ConsoleColor color1, string text, ConsoleColor color2)
{
            Console.ForegroundColor = color1;
            Console.Write(text);
            Console.ForegroundColor = color2;
}

w sumie jeszcze ładniej mogę zrobić:

static void WriteInfo(ConsoleColor color1, string text, ConsoleColor color2, bool line)
{
            Console.ForegroundColor = color1;
            Console.Write(text);
            if (line == true) Console.WriteLine();
            Console.ForegroundColor = color2;
}

Więc praktycznie wszędzie jest to jedna linijka kodu. Problemem tu może być static, które przychodzi na myśl programowanie strukturalne, ale tak jak mówiłem ta funkcja i te "Zdarzenia" później wylądują w osobnej klasie.

To teraz to taka prowizorka, która nie jest taka zła, ale mogła być lepsza na pewno :)

0

Jeśli chodzi o whois to informacje o lokalnych domenach maja: http://en.wikipedia.org/wiki/Regional_Internet_registry

1 użytkowników online, w tym zalogowanych: 0, gości: 1