SharePoint, Power Platform Blog STRONA GŁÓWNA

SharePoint i Windows Internal Database znany jako SQL Server Embedded Edition vs SQL Express

Czy wiecie, że darmowa wersja MS SQL nie musi mieć limitu na wielkość bazy?

Jeżeli tego nie wiecie, to zacznijmy od początku.

Znanym powszechnie jest fakt, że SharePoint potrzebuje do działania bazy danych MS SQL. Tutaj jednak otwiera się przed nami pełna gama równych możliwości od darmowej wersji bazy danych poprzez wersje płatne.

W dalszej części skupimy się wyłącznie na wersji darmowej.

Najczęściej podczas instalacji chęć kierowania się 'najlepszymi praktykami' sprawia, że tworzymy, nawet instalując wszystko na jednym serwerze, oddzielną instalację SQL Express i następnie instalujemy program SharePoint, który korzysta z zainstalowanej wcześniej bazy. Takie podejście jak najbardziej poprawne sprawia jednak, że w niedługim czasie napotykamy problem dotyczący limitu zawartości bazy

Rozwiązania są trzy:

Rozwiązanie nr 1 - zakup wersji komercyjnej i zmiana bazy SharePoint na pełną wersję SQL-a.
O ile to rozwiązanie technicznie jest najbardziej słuszne, o tyle trzeba mieć na nie przygotowane w budżecie niemałe pieniądze. Jak rozumiem, skoro na początku sięgnęliśmy po wersję darmową, to pewnie z budżetem na wersję komercyjną mogą być problemy.

Rozwiązanie nr 2 - zmiana architektury SharePoint'a. Ograniczenie wielkości bazy dotyczy ... pojedynczej bazy a nie programu SQL Express. Może warto więc rozdzielić naszą instancję SharePoint'a na różne bazy zawartości, np. oddzielny zbiór witryn na dokumenty firmowe, oddzielny zbiór witryn na część komunikacyjną, oddzielny zbiór witryn na witryny projektowe, itp. Podział wykonujemy w ten sposób, żeby każdy nowy zbiór witryn miał jednocześnie nową bazę zawartości. W tym podejściu uzyskujemy zwielokrotnienie limitu całej instalacji naszego SharePoint'a.

Rozwiązanie nr 3 - 'ręka na pulsie' czyli ciągłe czyszczenie naszego portalu z niepotrzebnych informacji i dokumentów. Ciekawą opcją, aczkolwiek dość ryzykowną, jest wyłączenie Kosza w opcjach witryny administracyjnej, dzięki czemu przez uzyskujemy od razu dodatkową przestrzeń. To rozwiązanie, mimo swojej skuteczności wymaga jednak sporego zaangażowania w codzienny serwis.

Rozwiązanie 'zero' to zapobieganie powyższej sytuacji, poprzez zastosowanie zamiast SQL Express bazy Windows Internal Database (SQL Server Embedded) - która również jest darmowa!. Warto natomiast wiedzieć, że baza Windows Internal Database w odróżnieniu do SQL Express nie posiada wbudowanego ograniczenia wielkości bazy. Oczywiście są też drobne utrudnienia, takie jak sposób połączenia z taką bazą czy też sposób tworzenia backupów, ale i ten element łatwo obejść.

Poniżej przedstawiam krótką tabelę podsumowującą podobieństwa i różnice obu baz

  SQL Express SQL Server Embedded
Ograniczenie wielkości bazy

Tak, w zależności od wersji:

  • 4 GB - SQL Server Express 2005 i 2008
  • 10GB -SQL Server Express 2008 R2 i 2012
 Bez ograniczenia wielkości bazy!
 Sposób instalacji  Podobnie jak w przypadku wersji komercyjnej Nie ma potrzeby oddzielnego instalowania bazy. Jest ona częścią instalatora SharePoint
Instalacja na kontrolerze domeny  Podobnie jak w przypadku wersji komercyjnej Na kontrolerze domeny nie można zainstalować SharePoint'a z tym rodzajem bazy
Architektura programu SharePoint Podobnie jak w przypadku wersji komercyjnej Możliwość wykorzystania Windows Internal Database jedynie w przypadku, gdy baza danych jest na tej samej maszynie co program SharePoint.
Sposób połączenia z bazą
poprzez SQL Server Management Studio
Podobnie jak w przypadku wersji komercyjnej

SQL Server Management Studio Express umożliwia połączenie z bazą Windows Internal Database, ale wymaga to użycia w polu 'Server name' wpisu:

  • \\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query (dla wersji: 2003-2008)
  • \\.\pipe\MICROSOFT##WID\tsql\query (dla wersji: 2012)

Pamiętajmy jednak poprzednie uwarunkowanie. To połączenie działa jedynie lokalnie. SQL Server Management Studio Express musi być na tej samej maszynie.

Zmiana wyglądu w domyślnym widoku AllItems.aspx w SharePoint Designer 2013

Jak wszyscy już chyba wiedzą SharePoint Designer 2013 to kilka niespodziewanych braków wybranych funkcjonalności znanych z poprzednich wersji, takich jak np. brak widoku projektowania. Dla zarządzania wyglądem widoków, to oznacza wykluczenie z grona projektantów tych osób, które nie znają przynajmniej kodu HTML.

Jeżeli jednak nie boimy się kodu, to nadal posiadamy dostęp do wielu przydatnych funkcji. Jedną z takich funkcji jest zestaw ikon w zakładce narzędzi widoku danych

undefined

Tu jednak czeka na nas niespodzianka. Po przejściu do edycji domyślnego widoku AllItems.aspx i kliknięciu myszką w kod składnika Web Part odpowiedzialnego za prezentację widoku, na wstążce narzędziowej ... nie pojawia się oczekiwany zestaw narzędzi.  

Mamy 2 rozwiązania:

1. Kasujemy istniejący składnik Web Part widoku allItems, tworzymy nowy i już wszystko działa. To rozwiązanie mimo, że daje oczekiwany rezultat, to z punktu widzenia zdrowego rozsądku jest ... bez sensu.

2. Innym rozwiązaniem jest niewielka modyfikacja kodu składnika. W kodzie szukamy parametru ClientRender="True" i zmieniamy na ClientRender="False".  Zapisujemy zmiany i od tej chwili opcje narzędzi widoku danych będą już dostępne.

Jak w polu lookup filtrować wyświetlane elementy

Opis sytuacji: 

Prowadzimy wypożyczalnie książek i chcemy mieć listę wszystkich rezerwacji

Mamy dwie listy,

1. Pierwsza z nich to ta na której mamy spis wszystkich książek

undefined

2. Druga zawiera formularz rezerwacji pokoju, przy czym jednym z pól formularza jest odnośnik (pole typu lookup) do listy książek

undefined

Konkretne zadanie brzmi więc tak: Jak zrobić, żeby w tym polu, w liście rozwijanej pojawiały się tylko te książki, które nie są wypożyczone ?.

Krok 1 - Na liście zawierającej nasz spis, tworzymy kolumnę obliczeniową, która będzie zawierała odpowiednią treść w zależności od statusu książki

undefined

w polu definiowania warunku wpisujemy:

=JEŻELI(Status="Dostępna";Tytuł;"")

 Dzięki temu warunkowi kolumna będzie pusta dla książek wypożyczonych.

 

Krok 2 - Na liście wypożyczeń, w kolumnie  zamieniamy mapowanie pola z 'Tytuł' na 'Dostępne książki'

undefined

Od tej chwili w polu wyboru książki, na formularzu wypożyczenia, będą widoczne tylko te pozycje, których status jest równy "Dostępna".

Żeby aplikacja miała większy sens funkcjonalny, pozostaje opracowanie procesów worfklow, które w tle aktualizują statusy książek, w przypadku wpisania rezerwacji bądź w przypadku zwrotu książki. 

Jak przywrócić Obszar roboczy spotkania

Czasem zdarza się, że ktoś korzystając z jednej funkcji SharePoint'a tak się do niej przyzwyczaja, że potem, kiedy brakuje jej w nowszej wersji tej platformy bardzo za nią tęskni. Co wtedy zrobić? Napisać swoją wersję? 

Jedną z "nowości" SharePoint'a 2013 jest brak checkboxa "Obszar roboczy" na formularzu listy typu Kalendarz. Dobra wiadomość jest taka, że wprawdzie funkcja została przez Microsoft wycofana ale sama funkcjonalność została i można ją przywrócić (o ile ktoś akurat tego elementu potrzebuje).

undefined

- Do You miss "Obszar roboczy"
- Yes, I do!

W takim razie do dzieła, ale trzeba mieć prawa administracyjne.

1. Na serwerze przechodzimy do katalogu C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\TEMPLATE\1045\XML

2. W notatniku otwieramy plik webtemp.xml

3. Szukamy sekcji dotyczącej szablonów MPS (Template name="MPS")

undefined

 4. I zmieniamy atrybut Hidden na False

undefined

Nie przywróci to naszego "Checkboxa" ale wśród szablonów przy tworzeniu nowych witryn pojawi się Obszar roboczy spotkania.

 

Więcej niż 2 poziomy w menu? Można!

3 (słownie: trzy) poziomy zagłębienia menu w programie SharePoint wyglądają tak:

 undefined

Można je włączyć, w dość prosty sposób:

  1. W pliku master page (seattle.master) szukamy StaticDisplayLevels oraz MaximumDynamicDisplayLeverls i obie wartości zmieniamy na '3'

    undefined

  2. Zapisujemy i ... to już koniec.

Ten cały skomplikowany proces możemy powtórzyć dla menu szybkiego uruchamiania (quicklanchmenu), które z 3 poziomami wygląda tak:

undefined

W tym przypadku w kontrolce V4QuickLanchMenu zmieniamy analogicznie na '3'

undefined

 

Jak tego używać? Banalnie! Przeciągamy myszką w odpowiednie miejsca

undefined

 

 

 

Home