====== Narzędzia programistyczne ======
===== Wykład i laboratorium =====
Termin zajęć w semestrze letnim 2011/2012
* Laboratorium + Wykład -każdy czwartek, 8:30 - 10:00, sala PK5, WFAiIS
===== Przebieg zajęć/ prezentacje =====
^ Data ^ Temat ^ Prowadzący ^ Źródła/Projekty ^
| 16/02/2012 | [[.:wyklad:plan|Wstęp - plan]] | MG | |
| 23/02/2012 | [[ide_wstep|Środowiska IDE - ogólny przegląd]] \\ [[vs_wstep|Visual Studio 2008/2010 - wstęp]] \\ Projekty i zarządzanie nimi. Kompilatory C%%++%% i C#. | MG | |
| 1/03/2012 | [[http://prezi.com/md-wt0ak__nr/team-foundation-server-overview/|Team Foundation Server - prezentacja]] ({{zajecia:npr_2012_1:zarzycki-tfs:zarzycki-tfs_overview.pdf|PDF}}) \\ [[wp>Team_Foundation_Server|Team Foundation Server]] \\ Scrum \\ [[http://www.codeplex.com/|CodePlex]] | D. Zarzycki | |
| 8/03/2012 | {{..:npr_2012_1:szatkowski:szatkowski.testy.pdf|Testowanie kodu (testy jednostkowe), NUnit, VS 2010 }} | J. Szatkowski | {{..:npr_2012_1:szatkowski:source.zip|Przykłady}} |
| 22/03/2012 | {{..:npr_2012_1:matczynski-valgrind:matczynski-valgrind.pdf|Valgring}} | Ł. Matczyński | {{..:npr_2012_1:matczynski-valgrind:matczynski-valgrind.zip|Ćwiczenia}} |
| 29/03/2012 | {{..:npr_2012_1:zwiewka-web.pdf|Tworzenie aplikacji WEB VS2010}} | A. Zwiewka | {{..:npr_2012_1:zwiewka-web.zip|Ćwiczenia}} |
| 12/04/2012 | {{..:npr_2012_1:rusek-Trac.pdf|Trac}} | O. Rusek | |
| ::: | {{..:npr_2012_1:leciejewski-firebug.pdf|Firebug/Notepad++}} | M. Leciejewski | |
| 19/04/2012 | {{..:npr_2012_1:potwardowska.edi.pdf|Edi}} | O. Potwardowska | |
| ::: | {{..:npr_2012_1:stankiewicz-gcc.pdf|GCC , make}} | M. Stankiewicz | |
| 26/04/2012 | {{..:npr_2012_1:musial-matlab.pdf|Matlab}} | M. Musiał | |
| 17/05/2012 | {{..:npr_2012_1:zielinski.bugzilla.pdf|Systemy raportujące błędy (Bugzilla)}} | R. Zielinski | |
| ::: | {{..:npr_2012_1:sumowski-uml.pdf|UML w VS2010}} | K. Sumowski | |
| 24/05/2012 | {{..:npr_2012_1:rozwadowski-eclipse.pdf|Eclipse}} | W. Rozwadowski | |
| 31/05/2012 | {{..:npr_2012_1:warzocha-graphviz.pdf|GraphViz }} | P. Warzocha | {{..:npr_2012_1:warzocha-graphviz.rar|Dodatkowe materiały }} |
| ::: | {{..:npr_2012_1:zarebski-debugger.pdf|Debbuger VS2010}} | R. Zarębski | |
===== Propozycje tematów =====
Inne tematy do przygotowania (niektóre można/należy podzielić na kilka prezentacji):
* Visual Studio 2010 Professional (ewentualnie Ultimate)
* Zarządzanie projektami. Kompilatory C%%++%% i C#.
* Debugger
* Projektowanie wizualne (WindowsForms)
* Generowanie kodu :kreatory, refaktoryzacja, inne pomocne "sztuczki" (np. for)
* Generowanie dokumentacji : VS2010 C#, c%%++%% \\ [[http://www.codeproject.com/KB/cpp/TestXMLdoc.aspx|Quick C# Documentation using XML]] \\ [[http://msdn.microsoft.com/en-us/magazine/cc302121.aspx|XML Comments Let You Build Documentation Directly From Your Visual Studio .NET Source Files]] \\ [[http://community.sharpdevelop.net/blogs/mattward/pages/FeatureTourXmlComments.aspx|XML Comments]] \\ Pomocne narzędzia: [[http://www.helixoft.com/vsdocman/overview.html|VSdocman]] [[http://ndoc.sourceforge.net/|NDoc]] [[http://submain.com/products/ghostdoc.aspx|GhostDoc]]
* Wsparcie dla programowania obiektowego: ClassDiagram i generowanie kodu, ClassViewer, Nawigacja pomiędzy klasami/metodami, Diagramy UML (tylko Ultimate)
* Tworzenie aplikacji web
* Profilowanie kodu (tylko ultimate)
* Testowanie : Testy jednostkowe (TestUnit, NUnit - trzeba zainstalować)
* WPF, WorkFlow,
* inne: [[http://msdn.microsoft.com/en-us/library/ms173063%28v=VS.100%29.aspx|Using the Visual C# Development Environment - MSDN]],
* Team Foundation Server (VS2010, czy wirtualna maszyna to pociągnie?)
* Netbeans
* przegląd, tworzenie projektów, dostępne narzędzia i pluginy
* Projektowanie GUI + SWING, mniej więcej to samo co dla VS +
* profilowanie kodu
* NetBeans i wsparcie dla C%%++%%, tworzenie aplikacji na system Linux.
* Valgrind wykrywanie wycieków pamieci (Cygwin, ferm lub virtualna maszyna)
* Doxygen lub/i javadoc (ferm (?), virtualna maszyna)
* Systemy kontroli wersji
* SVN - konfiguracja serwera (sprawdzić czy czy potrzebne uprawnienia administracyjne?)
* SVN - użytkowanie, rozwiązywanie konfliktów, (zdalna maszyna)
* GIT
* Eclipse - przegląd narzędzi, wsparcie dla C%%++%% (do zainstalowania na pracowni)
* jest tu durzo różnych narzędzi postaci dodatków
* Kompilator gcc (Linux/Cygwin), najważniejsze opcje + narzędzie make (Linux/ferm/Cygwin)
* GDB - debuuger
* Tworzenie i używanie statycznych i/lub dynamicznych bibliotek:
* VS2010 (C%%++%%)
* Linux (gcc/g%%++%%, ar, ranlib, ldconfig, ld, ldd, nm) \\ [[http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html|Tutorial - Static, Shared Dynamic and Loadable Linux Libraries]] \\ [[http://www.tldp.org/HOWTO/Program-Library-HOWTO/|Program Library HOWTO]]
* Autotools (Linux/Cygwin)
* Systemy raportujące błędy (Trac , Bugzilla)
* Trac - Wsparcie dla programowania zespołowego (harmonogramy, śledzenie wykonania zadań, itp.)
* gettext - lokalizacja programów w Linuxie
* Profilowanie kodu za pomocą GNU gprof + grafy wywołań (GraphViz) (Linux/ferm)
* UML (Dia, dia2code, MS Visio, umbrello, argouml, bouml, ...), UML i inżynieria wstecz/wprzód na przykładzie diagramów klas/use case przy użyciu programu [[http://argouml.tigris.org/|ArgoUML]]\\ W miarę potrzeb moźna rozszerzyć temat o inne dostępne w programie diagramy lub uwzględnić inne narzędzia: [[http://alexdp.free.fr/violetumleditor/page.php|VioletUML]] (brak generowania kodu), [[http://staruml.sourceforge.net/en/|StarUML]] (brak wersji portable), VS2010 Ultimate (widomo, na pracowni jest professional), [[http://uml.sourceforge.net/download.php|umbrello]] (wymaga KDE), dia (wymaga GTK), inne (?)...
* Wdrażanie aplikacji (deployment)
* Wdrażanie aplikacji w VS2010 \\ [[http://msdn.microsoft.com/en-us/library/bb384837.aspx| Deploying Your Program (C%%++%%) - MSDN]] \\ [[http://msdn.microsoft.com/en-us/library/zebw5zk9.aspx|http://msdn.microsoft.com/en-us/library/zebw5zk9.aspx]] \\ [[http://msdn.microsoft.com/en-us/library/e2444w33.aspx|Choosing a Deployment Strategy]]
* Inne: jakich narzędzi używacie? Pochwalcie się!
===== Zaliczenie zajęć =====
Warunki zaliczenia laboratorium:
* Kolokwium zaliczeniowe ...
* ... lub prezentacja wybranych narzędzi programistycznych (ok. 20-30 min.) + przykłady demonstracyjne (ćwiczenia) do wykonania na zajęciach.
* Obecność.