~~NOCACHE~~
====== Narzędzia programistyczne ======
===== Wykład i laboratorium =====
Termin zajęć w semestrze zimowym 2013/2014
* wtorki, godz. 1000-1130, sala 28, WFAiIS
* Laboratorium: poniedziałki, godz. 8-10, sala PK1, WFAiIS
===== Przebieg zajęć/ prezentacje =====
^ Data ^ Temat ^ Prowadzący ^ Źródła/Projekty/ ^
| 08/10/2013 | [[.:wyklad:plan|Wstęp - plan]] | MG | |
| 15/10/2013 | [[.:wyklad:ide_wstep|IDE przegląd]] | MG | |
| 22/10/2013 | [[.:wyklad:tfs_codeplex|TFS + ALM]] | MG | |
| 29/10/2013 | {{zajecia:npr_2013_2:gardzinski-git.pdf|Git}} | R. Gardziński | |
| ::: | {{zajecia:npr_2013_2:schalau-svn.pdf|Subversion}} | M. Schalau | |
| ::: | [[http://joshcarter.com/productivity/svn_hg_git_for_home_directory|Porównanie SVN vs. git]] | MG | |
| 5/11/2013 | {{zajecia:npr_2013_2:lawniczak-doxygen.pdf|Doxygen}} | A. Ławniczak | {{zajecia:npr_2013_2:lawniczak-doxygen.zip|demo.zip}} |
| ::: | {{zajecia:npr_2013_2:szymecki-testyjednostkowe.pdf|Testy jednostkowe w VS}} | W. Szymecki | {{zajecia:npr_2013_2:szymecki-testyjednostkowe.zip|demo.zip}} |
| 19/11/2013 | {{zajecia:npr_2013_2:przybyl-firebug.pdf|firebug}} | M. Przybył | {{zajecia:npr_2013_2:przybyl-firebug-demo.7z|demo.7z}} |
| ::: | {{zajecia:npr_2013_2:burzynski-deployment-vs2010.pdf|Deployment w VS 2010}} | R. Burzyński | |
| 26/11/2013 | [[zajecia:npr:monogame|MonoGame]] | Ł. Kiełczykowski | |
| ::: | {{zajecia:npr_2013_2:ganko-physx.pdf|PhysX Visual Debugger}} | T. Gańko | |
| 3/12/2013 | {{zajecia:npr_2013_2:bartnicki-xcode.pdf|X Code, tworzenie oprogramowania Apple}} | M. Bartnicki | |
| ::: | {{zajecia:npr_2013_2:gorzel-pascal.pdf|Free Pascal}} | Ł. Gorzel | |
| 10/12/2013 | {{zajecia:npr_2013_2:chojnicki-gcc.pdf|GCC + make}} | S. Chojnicki | |
| ::: | {{zajecia:npr_2013_2:dzwonkowski-libgdx.pdf|Eclipse + libgdx}} | Ł. Dzwonkowski | {{zajecia:npr_2013_2:dzwonkowski-libgdx-demo.7z|demo.7z}} |
| 17/12/2013 | {{zajecia:npr_2013_2:falewicz-matlab.pdf|Matlab}} | K. Falewicz | |
| ::: | {{zajecia:npr_2013_2:ejnik-gettext.pdf|gettext}} | J. Ejnik | |
| 14/01/2014 | {{zajecia:npr_2013_2:milewski-autotools.pdf|autotools}} | P. Milewski | |
| ::: | {{zajecia:npr_2013_2:demski-java.pdf|Narzędzia deweloperskie Java}} | Ł. Demski | [[zajecia:npr:java-cmd]] |
| 21/01/2014 | {{zajecia:npr_2013_2:furdyna-netbeans.pdf|NetBeans}} | G. Furdyna | [[zajecia:npr:netbeans-references|Żródła]] |
| ::: | {{zajecia:npr_2013_2:krol-delphi.pdf|Delphi}} | Ł. Król | {{zajecia:npr_2013_2:krol-delphi-opis.pdf|Opis}} |
| ::: | {{zajecia:npr_2013_2:rybarczyk-symfony.pdf|PHP + Framework Symfony}} | N. Rybarczyk | |
| 28/01/2014 | [[zagadnienia|Kolokwium]] | | |
===== Propozycje tematów =====
Niektóre, w zależności od ujęcia, można/należy podzielić na kilka prezentacji:
* Visual Studio 2010/2012/2013 (Professional/Ultimate)
* Zarządzanie projektami. Kompilatory C%%++%% i C#.
* Debugger
* Projektowanie wizualne (WindowsForms, WPF, inne)
* 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,
* Programowanie Windoes Phone/Windoes 8
* Blend
* 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
* Team Foundation Service
* Azure, usługi
* Eclipse przegląd narzędzi,
* JDT - Java development tools
* CDT, Eclipse IDE for C/C%%++%% Developers, wsparcie dla C%%++%%
* Eclipse for Mobile Developers
* Eclipse Modeling Tools (MDT)
* Eclipse for Testers
* PDT, PHP Development Tools
* Mylyn - Application Lifecycle Tools
* jest tu bardzo dużo różnych narzędzi postaci dodatków: Memory Analyzer, Test and Performance Tools Platform (TPTP), Web Tools
* 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
* 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.)
* Zarządzanie projektami (Project Management Software)
* [[wp>List_of_project_management_software]]
* Trac, TFS, Google Code, GitHub, CodePlex, inne...
* [[http://www.taskjuggler.org/|TaskJuggler]], [[http://www.redmine.org/|Redmine]], Microsoft Project, MS Project Server
* metodologie zarządzania: Scrum, inne.. i oprogramowanie wspierające
* 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ę!
* Inne przydatne narzędzia:
* [[http://www.jetbrains.com/resharper/|ReSharper]]
* [[http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx|FxCop]]
* [[http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx|DebugView]]
* [[http://www.jetbrains.com/profiler/index.html?topDT|dotTrace]]
* [[http://www.jetbrains.com/dotcover/index.html?topDC|dotCover]]
* [[http://www.jetbrains.com/decompiler/index.html?topDP|dotPeak]]
===== Zaliczenie zajęć =====
[[zagadnienia|Zagadnienia na kolokwium]] \\
Warunki zaliczenia laboratorium:
* Kolokwium zaliczeniowe ...
* ... lub prezentacja wybranych narzędzi programistycznych (ok. 30-45 min.). W prezentacji, obok części prowadzającej teoretycznie, warto zawrzeć przykłady demonstracyjne.
* Obecność.