konto usunięte

Temat: C# i SQL Server 2008 Express

Adam Michalski:
praca w korpo gdzie user nie ma internetu

Intranet z wewn. zasobami prawie na pewno ma.

samo się tam jednak nie wgra
dochodzi tu czynnik ludzki który może spowodować sytuację że user a pracuje w wersji 1, a user b w wersji 1.1 bo np. nie ma internetu pracując w terenie i teraz synchronizujemy zegarki i dupa, bo pracownik z wersją 1 cośzrobił i np. nie może wgrać tego dos serwera bo się zmieniła struktura zapytań - co wtedy?
co gorsza nic nie może zainstalować

Może, jeśli zatrudniają adminów, którzy potrafią skonfigurować poprawnie konto użytkownika.

użytkownik z założenia nie ma prawa niczego instalować - taki korpo standard bezpieczeństwa
Krzysztof Raczkowski

Krzysztof Raczkowski Stała współpraca,
Logifact-Systems Sp.
z o.o.

Temat: C# i SQL Server 2008 Express

Sergiusz B.:

Zmieniła się nazwa tabeli albo nazwy kolumn - trzymając zapytania "z palca" w zasobach lub co gorsza w kodzie aby zaktualizować aplikację musisz ją przekompilować i wysłać binarkę do kilkuset klientów. Wyciągając dane poprzez SP aktualizujesz tylko część serwerową (bazy danych), binarka pozostaje ta sama, nie zawracasz gitary klientom.
>

To jest niewątpliwy 'plus' tego rozwiązania.
Doszła kolejna tabela, kilka tabel, z których musisz wyciągać dane prezentując ten sam raport - j.w.

Musisz dodatkowo przetworzyć dane z zupełnie innej tabeli przed każdorazowym wygenerowaniem tego samego raportu - j.w.

Akurat raporty są doskonałym moim zdaniem miejscem na SP i zgadzam się że w raportach nie należy stosować ORM.
Przykłady można mnożyć, w firmach gdzie każdy nowy kod musi przejść określoną ścieżkę zdrowia zanim wejdzie na produkcję stajesz przed dylematem: rekompilować aplikację i przechodzić przez trzy cykle testów za każdym razem jak zmieni się jakaś głupota (o poważniejszych rzeczach nie wspominając nawet) w modelu danych czy może jednak trochę pomyślec i wyizolować i ograniczyć effort do naprawdę niezbędnego minimum?

Moje doświadczenie mi mówi, że czasem właśnie najmniejsza głupota może sprawdzić najwięcej problemów - bo właśnie nie została doceniona ...

Co do testów, dla aplikacji używanej przez kilkuset klientów zabronił bym robić poprawki bez testów ... no ale to już zależy od specyfiki pracy, środowiska ...

Nie widzę nic złego w kontrolowanej, zapowiedzianej aktualizacji systemu - da się to zautomatyzować.

To jak zawieszenie broni ? :D A może osobny 15752+1 wątek ? :)

--
Pozdrawiam
K.R.

konto usunięte

Temat: C# i SQL Server 2008 Express

Sergiusz B.:
Krzysztof Raczkowski:

Trzymanie zapytań razem z kodem (to określenie jest lepsze niż w kodzie - np. zasoby, jak jeden z kolegów zauważył) również umożliwia rozwój aplikacji, skalowalność ... wszystko zależy jak to napiszemy.

Zmieniła się nazwa tabeli albo nazwy kolumn - trzymając zapytania "z palca" w zasobach lub co gorsza w kodzie aby zaktualizować aplikację musisz ją przekompilować i wysłać binarkę do kilkuset klientów. Wyciągając dane poprzez SP aktualizujesz tylko część serwerową (bazy danych), binarka pozostaje ta sama, nie zawracasz gitary klientom.

Ale czy zazwyczaj ogromne projekty to nie same w sobie serwery aplikacji z warstwami usługowymi? więc gdzie tu trzeba coś komuś wysyłać? zmienia się assembly na serwerze gdzie zdeployowany jest serwer, (jeśli sobie to dobrze zaprojektujemy to tylko dodajemy xmla i nic się nie zmienia), więc aplikacje klienckie nie muszą być updatowane, baa serwer nawet nie musi być restartowany zakładając że na instancji testowej nowe zmiany przeszły i uzyskały akceptacje.

Ogry Desktopowe zazwyczaj mają lokalne bazy danych więc czy tak czy siak wymagany jest update, a jeśli łączą się z serwerami bądź usługami to j.w zmiana po stronie serwera nie implikuje zmian gdziekolwiek indziej.

W każdym innym przypadku mniejszych aplikacji (ale bądź co bądź dużych) podejście z SP jest raczej zasadne.

konto usunięte

Temat: C# i SQL Server 2008 Express

Bartosz Adamczewski:

Ale czy zazwyczaj ogromne projekty to nie same w sobie serwery aplikacji z warstwami usługowymi?

Może i są, ale są też takie z grubym klientem i o wadach zaszywania zapytań w takich przypadkach właśnie tutaj jest dyskusja.
baa serwer nawet nie musi być restartowany zakładając że na instancji testowej nowe zmiany przeszły i uzyskały akceptacje.

Przy zmianie binarek serwer PROD ZAWSZE należy restartować inaczej prosisz się o kłopoty.

Ogry Desktopowe zazwyczaj mają lokalne bazy danych więc czy tak czy siak wymagany jest update, a jeśli łączą się z serwerami bądź usługami to j.w zmiana po stronie serwera nie implikuje zmian gdziekolwiek indziej.

Ogry Desktopowe (dobre, dobre) nie zawsze mają lokalne bazy danych bo często jest to niemożliwe ze względu na ograniczenia instalacji dodatkowych bibliotek, licencji (bo Sql Express nie wystarcza) oraz bezpieczeństwa danych jak i często samej architektury aplikacji.

W każdym innym przypadku mniejszych aplikacji (ale bądź co bądź dużych)

Ciekawe ile linii kodu ma mniejsza, ale bądź co bądź duża aplikacja ;)
Krzysztof Raczkowski:

To jak zawieszenie broni ?

To ktoś zdjął flintę ze ściany?? :)

Temat: C# i SQL Server 2008 Express

To tak przy okazji komentarza dotyczącego umieszczania obiektu połączenia do bazy w usingu - tutaj aż się prosi o zapoznanie się z różnymi scenariuszami zarządzania połączeniami (połączenie per zapytanie, per use case, per formatka, per sesja www, per sesja desktop itd). Dyskusja znana np. z "podwórka" (N)Hibernate'a i innych ORMów, ale oczywiście nie tylko, bo to ogólny problem zarządzania zasobami.

(...i przy okazji mamy kolejne zastosowanie dla programowania aspektowego :P)

konto usunięte

Temat: C# i SQL Server 2008 Express

Sergiusz B.:
Bartosz Adamczewski:

Ale czy zazwyczaj ogromne projekty to nie same w sobie serwery aplikacji z warstwami usługowymi?

Może i są, ale są też takie z grubym klientem i o wadach zaszywania zapytań w takich przypadkach właśnie tutaj jest dyskusja.

W takim wypadku owszem zgadzam się że to jest wada.
baa serwer nawet nie musi być restartowany zakładając że na instancji testowej nowe zmiany przeszły i uzyskały akceptacje.

Przy zmianie binarek serwer PROD ZAWSZE należy restartować inaczej prosisz się o kłopoty.

Dobrze napisane App Serwery same potrafią załadować binarki oraz na komendę admina same przeprowadzić odpowiednie operacje serwisujące które mają zapobiedz restartowi szczególnie jeśli down time ma nigdy! nie być dłuższy niż 5 min per year.

W każdym innym przypadku mniejszych aplikacji (ale bądź co bądź dużych)

Ciekawe ile linii kodu ma mniejsza, ale bądź co bądź duża aplikacja ;)

Hehe :) można powiedzieć że te duże to ok 1 mln lof (lines of code) a te większe to ok 5 mln. Można to też mierzyć przez włączanie się projektu w VS duże to takie gdzie nie pojawia się progress bar co do Intelisence caschingu ;p a te ogromne to jak czekamy 20 min na wczytanie się tego progress bara ;)

konto usunięte

Temat: C# i SQL Server 2008 Express

Adrian Olszewski:
To tak przy okazji komentarza dotyczącego umieszczania obiektu połączenia do bazy w usingu - tutaj aż się prosi o zapoznanie się z różnymi scenariuszami zarządzania połączeniami (połączenie per zapytanie, per use case, per formatka, per sesja www, per sesja desktop itd). Dyskusja znana np. z "podwórka" (N)Hibernate'a i innych ORMów, ale oczywiście nie tylko, bo to ogólny problem zarządzania zasobami.

Temat zarządzania "sesją" jest bardzo ciekawy. Fajnie by było zebrać kilka rozwiązań (dla różnych ORMów w róznych kontekstach) od ludzi z tej grupy i stworzyć jakiś projekt na codeplexie :) Z chęcią podpatrzyłbym jak to robią inni.

konto usunięte

Temat: C# i SQL Server 2008 Express

Sergiusz B.:
Krzysztof Raczkowski:

Trzymanie zapytań razem z kodem (to określenie jest lepsze niż w kodzie - np. zasoby, jak jeden z kolegów zauważył) również umożliwia rozwój aplikacji, skalowalność ... wszystko zależy jak to napiszemy.

Zmieniła się nazwa tabeli albo nazwy kolumn - trzymając zapytania "z palca" w zasobach lub co gorsza w kodzie aby zaktualizować aplikację musisz ją przekompilować i wysłać binarkę do kilkuset klientów. Wyciągając dane poprzez SP aktualizujesz tylko część serwerową (bazy danych), binarka pozostaje ta sama, nie zawracasz gitary klientom.

Zaczyna sie od "prostych" zmian w nazwie kolumny a konczy na logice biznesowej zaszytej w procedurach, bo "tak prosciej" i "nie trzeba robic deploya". Widzialem w zyciu zbyt wiele projektow, w ktorych po kilku latach procedury robia 'wszystko', lacznie z generowaniem HTMLa dla widokow(!) i stwierdzam, ze w praktyce nie da sie tego uniknac. Idea podmiany swietna, ale w praktyce IMO to jedna z najwiekszych wad SP, a takie praktyki ciezko nie nazwac "dirty hack".

LINQ-TO-SQL czy EF nie sa zbyt popularne (glownie ze wzgledu na narzut na wydajnosc), ale NHibernate jest na chwile obecna jednym z najczesciej spotykanych wymagan przy ogloszeniach o prace. Dlatego dla poczatkujacego programisty .net - warto znac ADO.NET, ale rownie wazna jest znajomosc NHibernate.

Do autora watku:
Paweł Cyrklaf:
Używam Visual C# 2008 Express oraz serwer bazy danych SQL Server 2008 Express, i mam takie pytanie, mam kod:

Na innym temacie dostales info dotyczace jak zaczac. Szkoda, ze nie zadales sobie trudu wejscia na strony, ktore wielu uczestnikow polecilo. Odpowiedzi na pytania takie jak to zadane tutaj, standardowe wzorce i metodologie (wlaczajac w to CRUD/ORM itp.) sa tam swietnie udokumentowane wraz z przykladami gotowymi do sciagniecia w postaci solucji. Bardzo dobre okomentowanie funkcji rozwieje na pewno wiele watpliwosci. Szczerze polecam!

Następna dyskusja:

Seminarium Microsoft SQL Se...




Wyślij zaproszenie do