Instrukcja laboratoryjna cz.2

Transkrypt

Instrukcja laboratoryjna cz.2
Synteza aplikacji biznesowych
2013/2014
Instrukcja laboratoryjna cz.2
Administracja serwisów Microsoft SharePoint
Prowadzący: Tomasz Goluch
Wersja: 4.1
Diagnostyka przy użyciu mechanizmu Developer Dashboard.
I.
Cel: uruchomienie i zapoznanie się z mechanizmem diagnozowania wydajności
serwisów Sharepoint – Developer Dashboard.
1.
2.
3.
4.
5.
Uruchom Visual Studio z prawami administratora.
Utwórz nowy Console Application projekt (Visual C#).
Ustaw projekt w trybie 64 bit (Properties → Build → Platform Target → x64).
Dodaj referencję do Microsoft.SharePoint.
Dodaj następujący kod:
ETI
6. Uruchom debbugera: (Ctrl+F5), wynik działania probramu powinien być następujący:
Programowanie własnych składników Visual Web Part z
wykorzystaniem Linq to Sharepoint.
II.
Cel: napisanie i wdrożenie prostego składnika Web Part czytającego dane z
listy i wyświetlającego je w kontrolce Data Grid
1.
2.
3.
4.
5.
1
Uruchom Visual Studio z prawami administratora.
Utwórz nowy Visual Web Part projekt1.
Zapamiętaj lokalny adres witryny projektu.
Podaj adres witryny projektu w polu: What site do you want to use for bebbuging?
Zaznacz opcję: Deploy as a farm solution.
Projekt wymaga uruchomienia środowiska programistycznego z prawami administratora. Możesz zostać
poproszony o restart programu.
6. W pliku: VisualWebPart1.webpart zmień tytuł i opis Web Parta:
<properties>
<property name="Title" type="string">Tutaj podaj tytuł</property>
<property name="Description" type="string">Tutaj podaj opis</property>
</properties>
7. Otwórz okno wiersza poleceń w katalogu głównym projektu2.
8. Ustaw ścieżkę dostępu do folderu zawierającego narzędzie spmetal za pomocą
komendy: set path=%path%;%ProgramFiles%\common files\microsoft shared\web
server extensions\15\bin3
9. W celu stworzenia odpowiednich encji wygeneruj Linq-to-SharePoint proxy kod za
pomocą komendy:
spmetal /web:http://domena.com4 /namespace:NazwaProjektu.VisualWebPart1
/code:SPLinq.cs
10. Dodaj do katalogu głównego projektu nowo wygenerowany plik: SPLinq.cs
2
Aby otworzyć wiersz poleceń w katalogu bieżącym należy przytrzymać klawisz Shift i kliknąć prawym
przyciskiem na wolnym polu w bieżącym oknie. Następnie z menu kontekstowego należy wybrać polecenie:
Open command window here.
3
Innym sposobem na dodanie ścieżki do SPMetal.exe należy kliknąć prawym przyciskiem na komputer i
wybrać: Properties → Advanced System Settings → Advanced → Environment Variables → W oknie: System
System variables kliknij dwukrotnie na zmiennej PATH i dołącz do jaj zawartości następującą ścieżkę:
%ProgramFiles%\common files\microsoft shared\web server extensions\14\bin.
4
Tutaj podaj adres zapamiętanej wcześniej witryny lokalnej.
11. Dodaj referencję c:\program files\Common Files\microsoft shared\Web Server
Extensions\15\ISAPI\Microsoft.SharePoint.Linq.dll
12. Dodaj do pliku VisualWebPart1UserControl.ascx kod deklarujący kontrolkę
SPGridView:
<%@ Import Namespace="Microsoft.SharePoint.WebControls" %>
<SharePoint:SPGridView ID="spGridView" runat="server" AutoGenerateColumns="false">
<HeaderStyle HorizontalAlign="Left" ForeColor="Navy" Font-Bold="true" />
<Columns>
<SharePoint:SPBoundField DataField="Name">
</SharePoint:SPBoundField>
<SharePoint:SPBoundField DataField="DocumentCreatedBy">
</SharePoint:SPBoundField>
</Columns>
</SharePoint:SPGridView>
13. W kodzie behind dodaj następujące przestrzenie nazw:
using Microsoft.SharePoint.Linq;
using Microsoft.SharePoint;
using System.Linq;
14. Wewnątrz metody Page_Load kontrolki użytkownika w
plikuVisualWebPart1UserControl.ascx.cs umieść następujące linie kodu:
var dc = new SPLinqDataContext(SPContext.Current.Web.Url);
var Documents = dc.GetList<Document>("Documents");
var docQuery = from doc in Documents
where doc.Name.Contains(".pdf")
select new
{
doc.Name,
doc.DocumentCreatedBy
};
spGridView.DataSource = docQuery;
spGridView.DataBind();
15. Uruchom debbugera: (F5)
16. Zaloguj się do przeglądarki z prawami administratora głównej witryny Sharepoint
(login: Administrator, hasło: ETI_pg_2014).
17. Wybierz edycję witryny: settings
→ Edit Page → INSERT → Web Part.
5
18. Z menu Categories wybierz: Custom , a następnie z menu Parts wybierz własny
projekt i dodaj do witryny przyciskiem Add.
19. Dodaj kilka dokumentów różnych typów6 do Documents i zaobserwuj zachowanie się
dodanego składnika Web Part.
5
Jeżeli w menu Categories nie występuje zakładka Customs sprawdź czy we właściwości: Site URL projektu
została podana poprawna ścieżka.
6
Dodaj dokumenty PDF i inne.
Proszę przedstawić prowadzącemu działający program.
Komunikacja pomiędzy składnikami Web Part.
III.
Cel: napisanie dwóch prostych składników Web Part (dostawcy i konsumenta).
1.
2.
3.
4.
5.
6.
7.
Uruchom Visual Studio z prawami administratora.
Utwórz nowy Empty SharePoint projekt7.
Zapamiętaj lokalny adres witryny projektu.
Zaznacz opcję: Deploy as a farm solution.
Dodaj do projektu nowy plik interfejsu o przykładowej nazwie IProject.
Zmień widoczność interfejsu na Publiczną.
Wewnątrz interfejsu umieść następujące linie kodu:
public interface IProject
{
int Id { get; }
string Name { get; }
}
8. Dodaj do projektu nowy składnik Web Part (Dostawca).
9. Zaimplementuj wcześniejszy interfejs w klasie nowego składnika Web Part.
10. Dodaj wewnątrz klasy nowego składnika Web Part następujące linie kodu:
public DropDownList _bufor = null;
int IProject.Id
{
get { return int.Parse(_bufor.SelectedValue); }
}
string IProject.Name
{
get { return _bufor.SelectedItem.ToString(); }
}
11. Wewnątrz metody CreateChildControls dodaj następujący kod:
try
{
_bufor = new DropDownList();
7
Projekt wymaga uruchomienia środowiska programistycznego z prawami administratora. Możesz zostać
poproszony o restart programu.
Controls.Add(_bufor);
using (SPSite spSite = new SPSite(SPContext.Current.Web.Url))
using (SPWeb spWeb = spSite.OpenWeb())
{
SPList doclist = spWeb.Lists["Documents"];
foreach(SPListItem doc in doclist.Items)
{
_bufor.Items.Add(new ListItem(doc.Name, doc.ID.ToString()));
}
}
_bufor.AutoPostBack = true;
}
catch (Exception ex)
{
this.Controls.Clear();
this.Controls.Add(new LiteralControl(ex.Message));
}
12. Poniżej metody CreateChildControls dodaj metodę NameDoesNotMatter:
[ConnectionProvider("Project Name and ID")]
public IProject NameDoesNotMatter()
{
return this;
}
13. Dodaj do projektu kolejny nowy składnik Web Part (Konsument).
14. Dodaj wewnątrz klasy nowego składnika Web Part następujące linie kodu:
IProject _bufor = null;
Label _lbl = null;
15. Wewnątrz metody CreateChildControls dodaj następujący kod:
try
{
_lbl = new Label();
if (_bufor != null)
{
if (_bufor.Id > 0)
{
_lbl.Text = _bufor.Name + " został zaznaczony";
}
else
{
_lbl.Text = "Nic nie zaostało zaznaczone";
}
}
else
{
_lbl.Text = "Brak połączenia z dostawcą";
}
this.Controls.Add(_lbl);
}
catch(Exception ex)
{
this.Controls.Clear();
this.Controls.Add(new LiteralControl(ex.Message));
}
16. Poniżej metody CreateChildControls dodaj metodę ThisNameDoesNotMatter:
[ConnectionConsumer("Project Name and ID")]
public void ThisNameDoesNotMatter(IProject providerInterface)
{
_bufor = providerInterface;
}
17. Uruchom debbugera: (F5)
18. Zaloguj się do przeglądarki z prawami administratora głównej witryny Sharepoint
(login: Administrator, hasło: ETI_pg_2014).
19. Wybierz: PAGE → View All Pages.
20. Wybierz: FILES → New Document → Web Part Page.
21. Wymyśl i podaj nazwę strony.
22. Wybierz szablon układu: Full Page, Vertical.
23. Wybierz: Create.
24. Kliknij na strefie składnika Web Part (pole z napisem: Add a Web Part).
25. Z menu Categories wybierz: Custom, a następnie z menu Web Parts wybierz projekt
(Konsument) i dodaj do witryny przyciskiem Dodaj.
26. Kliknij na strefie składnika Web Part (pole z napisem: Add a Web Part).
27. Z menu Kategorie wybierz: Custom, a następnie z menu Web Parts wybierz projekt
(Dostawca) i dodaj do witryny przyciskiem Add.
28. Kliknij na oknie combo składnika Web Part (Dostawca) i wybierz: Connections →
Send Project Name and ID to → Konsument8.
29. Wybierz: Site → Stop Editing.
30. Przejdź do głównej strony: Home (Witryna najwyższego poziomu).
31. W oknie combo producenta wybierz jedną z dostępnych pozycji.
32. Wybrana opcja powinna zostać wyświetlona w oknie konsumenta.
Proszę przedstawić prowadzącemu działający program.
IV.
Programowanie składnika Web Part z użyciem kontrolek
SharePoint.
Cel: Zaprogramowanie składnika Web Part z użyciem kontrolek SharePoint w
celu wyświetlenia informacji z witryny SharePoint. Utworzenie
niestandardowego składnika XSLTListWebPart w programie SharePoint
Designer.
1.
2.
3.
4.
Uruchom Visual Studio z prawami administratora.
Utwórz nowy Visual Web Part projekt9.
Zapamiętaj lokalny adres witryny projektu.
Zaznacz opcję: Deploy as a farm solution.
5. W pliku: VisualWebPart1.webpart podaj tytuł i opis Web Parta:
<properties>
<property name="Title" type="string">Tutaj podaj tytuł</property>
<property name="Description" type="string">Tutaj podaj opis</property>
</properties>
6. Dodaj do pliku VisualWebPartUserControl.ascx następujący kod:
<SharePoint:ListViewByQuery runat="server" ID="ProjectListView" />
<br />
<asp:Label ID="Label1" runat="server" Text="Zadania rozpoczęte przed:" />
<SharePoint:DateTimeControl ID="DueDate" AutoPostBack="true"
OnDateChanged="OnDate_Changed"
DateOnly="true" runat="server">
</SharePoint:DateTimeControl>
7. W kodzie behind dodaj następujące przestrzenie nazw:
using Microsoft.SharePoint;
using Microsoft.SharePoint.Utilities;
using System.Web;
8
Tutaj powinna się wyświetlić nazwa składnika Web Part konsumenta.
Projekt wymaga uruchomienia środowiska programistycznego z prawami administratora. Możesz zostać
poproszony o restart programu.
9
8. Wewnątrz metody Page_Load umieść następujące linie kodu:
DateTime dueDate = DateTime.Now;
if (!string.IsNullOrEmpty(Request.QueryString["date"]))
{
dueDate = DateTime.Parse(Request.QueryString["date"]);
}
DueDate.SelectedDate = dueDate;
SPWeb home = SPContext.Current.Web;
ProjectListView.List = home.Lists["Projects"];
SPQuery query = new SPQuery(ProjectListView.List.DefaultView);
query.ViewFields = "<FieldRef Name=\"Title\" /><FieldRef Name=\"StartDate\" />";
query.Query = string.Format("<Where><Leq><FieldRef Name=\"StartDate\" />" +
"<Value Type=\"DateTime\">{0}</Value></Leq></Where>"
, dueDate.ToString("s"));
ProjectListView.DisableFilter = true;
ProjectListView.DisableSort = true;
ProjectListView.Query = query;
9. Wewnątrz edytowanej klasy dodaj następująca metodę:
protected void OnDate_Changed(object sender, EventArgs e)
{
SPUtility.Redirect(SPContext.Current.ListItem.Name
, SPRedirectFlags.Default
, HttpContext.Current
, string.Format("date={0}", DueDate.SelectedDate.ToString("d")));
}
10. Uruchom debbugera: (F5)
11. Dodaj w Designerze listę o nazwie Projects z dwoma polami: Title (typu: Single line
of text) i StartDate (typu: Date and Time).
12. Zaloguj się do przeglądarki z prawami administratora głównej witryny Sharepoint
(login: Administrator, hasło: ETI_pg_2014).
13. Wybierz edycję witryny: settings
→ Edit Page → INSERT → Web Part.
10
14. Z menu Categories wybierz: Custom , a następnie z menu Parts wybierz własny
projekt i dodaj do witryny przyciskiem Add.
15. Dodaj kilka zadań o różnej dacie rozpoczęcia do listy Projects i zaobserwuj
zachowanie się dodanego składnika Web Part zmieniając datę w kalendarzu.
10
Jeżeli w menu Categories nie występuje zakładka Customs sprawdź czy we właściwości: Site URL projektu
została podana poprawna ścieżka.
16. Uruchom program Microsoft SharePoint Designer 2013.
17. Wybierz: Otwórz witrynę.
18. Podaj adres witryny a następnie zaakceptuj przyciskiem Otwórz.
19. Zaloguj się do przeglądarki z prawami administratora głównej witryny Sharepoint
(login: Administrator, hasło: ETI_pg_2014).
20. Wybierz: Cite Pages → Home.aspx
21. Wybierz na wstążce: Edit File → Edit File in Advanced Mode.
22. Ustaw kursor w kodzie przed znacznikiem: </Content>
23. Wybierz na wstążce: INSERT → Data View → Lists → Projects
24. Zapisz plik (Ctrl+S).
25. Dodaj kilka zadań o różnych terminach do listy Projects i zaobserwuj zachowanie się
dodanego składnika Web Part.
Proszę przedstawić prowadzącemu działający program.

Podobne dokumenty