<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Screenager &#187; Headline</title>
	<atom:link href="http://www.screenager.be/blog/archives/category/headline/feed" rel="self" type="application/rss+xml" />
	<link>http://www.screenager.be/blog</link>
	<description>in the age of interruption</description>
	<lastBuildDate>Fri, 29 Oct 2010 23:53:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>De Grammoshop</title>
		<link>http://www.screenager.be/blog/archives/446</link>
		<comments>http://www.screenager.be/blog/archives/446#comments</comments>
		<pubDate>Tue, 20 Jan 2009 20:36:05 +0000</pubDate>
		<dc:creator>sven</dc:creator>
				<category><![CDATA[Headline]]></category>
		<category><![CDATA[School]]></category>
		<category><![CDATA[Sticky]]></category>
		<category><![CDATA[Websites]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[grammoshop]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.screenager.be/blog/?p=446</guid>
		<description><![CDATA[Vorige week stonden we nog te trillen voor een groot auditorium, vandaag kan ik de Grammoshop eens rustig online voorstellen.
Voor het project van het 3de jaar multimedia moesten we in een cluster van 9 mensen een &#8220;uitvinding&#8221; voorstellen. Elke cluster werd opgedeeld in 3 groepen: een online, offline en video groep. De online groepen moesten een dynamische webshop rond de uitvinding maken, de offline een flex applicatie, en de video groep.. guess what.. die moesten een video produceren.
Wij kozen als uitvinding voor de grammofoon.
Gelukkig had ik in het begin van ...]]></description>
			<content:encoded><![CDATA[<p><em></em>Vorige week stonden we nog te trillen voor een groot auditorium, vandaag kan ik de Grammoshop eens rustig online voorstellen.<br />
Voor het <strong>project van het 3de jaar multimedia</strong> moesten we in een cluster van 9 mensen een &#8220;uitvinding&#8221; voorstellen. Elke cluster werd opgedeeld in 3 groepen: een online, offline en video groep. De online groepen moesten een dynamische webshop rond de uitvinding maken, de offline een flex applicatie, en de video groep.. guess what.. die moesten een video produceren.</p>
<p>Wij kozen als uitvinding voor de <strong>grammofoon</strong>.<br />
Gelukkig had ik in het begin van het jaar het vragenblad omtrent onze hobbies en interesses eerlijk ingevuld, want daarop hebben de lectoren zich gebaseerd om ons in te delen. En dus kwam ik in het online gedeelte terecht. Joepie!</p>
<h3>Idee</h3>
<p>Een webshop voor grammofonen maken leek logisch. Maar het is niet zo gemakkelijk om goed fotomateriaal te bekomen aangezien dit geen alledaags voorwerp meer is. Maar op een webshop moet wel beeldmateriaal komen om potentiële klanten te verleiden met ons product dat we aanbieden. Daarom moesten we eigenlijk een stapje verder gaan in het brainstormen over het concept over onze webshop.<br />
We kregen ook de opdracht om een 3D-object van onze grammofoon in de webshop te integreren. Daardoor kwamen we op het idee om een webshop te maken waarbij mensen zelf hun grammofoon kunnen samenstellen. Door het digitaliseren van de grammofoon konden we deze opsplitsen in verschillende onderdelen zoals de hoorn, hoornhouder, plaatopleg &#8230; Deze onderdelen vormen de basis van onze webshop. En zo kunnen mensen dus hun eigen unieke grammofoon samenstellen.</p>
<h3>.NET</h3>
<p>Het slechte nieuws: De site moest in<strong> .NET</strong> worden gemaakt, omdat de andere multimedia student enkel dat kende, wat ik hem niet kwalijk kon nemen. En uiteindelijk valt .NET goed mee. Iedereen klaagt altijd over Microsoft producten, maar van .NET en Visual Studio kan je niet zeggen dat ze slecht gemaakt zijn. Waar PHP uitblinkt in vrije en flexibele code, kon .NET me vooral overtuigen met de taal C# en de debugger van Visual Studio. De kans dat je in C# onduidelijke en onveilige code schrijft is veel kleiner dan bij PHP. Generieke klassen, sterke controles op datatypen en een gestandariseerde manier van structureren. Bovendien is Visual Studio een van de weinige IDE&#8217;s die zo mooi integreert met de code (in source view uiteraard)<br />
Het enige nadeel heb je met .NET wanneer je websites moet programmeren met zeer veel vereisten, zoals complexe lay-outs waar gewone .NET datagrids niet aan voldoen.</p>
<h3>Technisch</h3>
<p>Natuurlijk, ik ga er niet om liegen, ik heb al .NET sites gemaakt voor het Computerwinkeltje en de universiteit van Halmstad. De technieken die ik daar geleerd heb kon ik overnemen, maar er zitten ook veel nieuwigheden in. Een overzicht van de technische kanten van de site:</p>
<ul>
<li>MS Server Express, met Stored Procedures</li>
<li>Volledig 3-tier, met generieke klassen (BOL, DAL, BLL)</li>
<li>Aparte class-library voor de database klassen</li>
<li>Volledige integratie met .NET Membership. De databaseklassen werden gebouwd op Membership (dus niet overschreven), wat voor meer flexibiliteit zorgt.</li>
<li>De eigen tabellen zijn gekoppeld aan de Membership tabellen. Dit zorgde natuurlijk voor een leuk database diagram.</li>
<li>Save-methode voor elke klasse die zowel voor opslaan als creëeren dient</li>
<li>Caching</li>
<li>Gebruik van .NET Profiles om de adresgegevens op te slaan</li>
<li>Formulieren zitten in Usercontrols, met Usercontrol templates</li>
</ul>

<a href='http://www.screenager.be/blog/archives/446/klassendiagram' title='Klassendiagram grammoshop'><img width="150" height="150" src="http://www.screenager.be/blog/wp-content/uploads/2009/01/klassendiagram-150x150.png" class="attachment-thumbnail" alt="Klassendiagram grammoshop" title="Klassendiagram grammoshop" /></a>
<a href='http://www.screenager.be/blog/archives/446/databasediagram' title='Databasediagram grammoshop'><img width="150" height="150" src="http://www.screenager.be/blog/wp-content/uploads/2009/01/databasediagram-150x150.png" class="attachment-thumbnail" alt="Databasediagram grammoshop" title="Databasediagram grammoshop" /></a>
<a href='http://www.screenager.be/blog/archives/446/screenshot-2-2' title='Grammoshop screenshot'><img width="150" height="150" src="http://www.screenager.be/blog/wp-content/uploads/2009/01/screenshot-2-150x150.jpg" class="attachment-thumbnail" alt="Screenshot van de grammoshop" title="Grammoshop screenshot" /></a>

<ul>
<li>Intensief gebruik van jQuery met plugins zoals Accordion</li>
<li>De meeste javascript referenties staan onderaan in de broncode om snelheid te winnen</li>
<li>Schuifeffecten in de adminpagina&#8217;s om plaats te winnen</li>
<li>Propere leesbare CSS files, waarbij print.css en screen.css van mekaar gescheiden zijn</li>
<li>Aparte stylesheet style.css, die enkel opmaak code bevat</li>
<li>Integratie met ASP.NET Themes, met conditional comments voor IE css bestanden</li>
<li>HTML 4.0 Strict, weinig table tags, title en alt tags voor usability, valideert in de mate van het mogelijke (door .NET)</li>
<li>Controle op cookies en javascript</li>
<li>Cross-browser: Firefox, IE6 (enkel front-end), IE7, Safari. Opera voorlopig nog niet</li>
</ul>
<h3>Functionaliteiten</h3>
<p>De site bevat ook veel functionaliteit. Centraal staat het shopproces. Verder ontwikkelden we ook</p>
<ul>
<li>Nieuwsberichten, met RSS feed</li>
<li>Statische pagina&#8217;s voor de geschiedenis van de grammofoon, en het filmpje van de video groep</li>
<li>Contact pagina</li>
<li>Beheerpagina&#8217;s voor de admin en winkelbeheerder(s):
<ul>
<li>Beheren van nieuwsberichten</li>
<li>Beheren van de onderdelen van de shop (nieuwe afbeeldingen toevoegen)</li>
<li>Beheren van gebruikers en veranderen van rechten</li>
<li>Beheren van modellen</li>
<li>Beheren van orders</li>
<li>Kunnen zoeken op orders, modellen, gebruikers, en kunnen filteren op datum, gebruiker, order, model,..</li>
<li>Backup&#8217;en van de database</li>
<li>Controle op integriteit: een model kan je niet verwijderen als er nog lopende orders voor bestaan, enz..</li>
</ul>
</li>
</ul>
<h3>Groepswerking</h3>
<p>Ik heb meestal niet veel geluk met groepswerking, maar deze keer verliep de samenwerking enorm vlot. Nicky spitste zich als ontwerper toe op het uiterlijk van de site, Filip maakte de 3D afbeeldingen en zorgde voor de slicing en de algemene html en css, en ik voor het dynamische gedeelte, de css en de javascript. Het leuke was dat ze niet enkel wilden doen wat opgelegd was, maar de site duidelijk een meerwaarde wilden laten geven. En dat terwijl ik voor een vorig projectwerk nog bijna werd verweten te diep te willen gaan.</p>
<h3>Resultaat</h3>
<p>Het resultaat is geslaagd. Shoppen was nog nooit zo plezierig. Uiteraard konden nog veel dingen beter (zoals betere toegankelijkheid, ajax, modellen van anderen kunnen kopen en op kunnen stemmen,  enz..) maar daar was geen tijd meer voor. In ieder geval zal ik de code kunnen gebruiken een van m&#8217;n volgende projecten: Stage Digitaal.</p>
<p><em>Website</em>: <a href="http://www.screenager.be/grammoshop">www.screenager.be/grammoshop</a><br />
<em>Demo admin: username: <strong>demo</strong>, wachtwoord: <strong>demo<br />
</strong>Alles is fictief! geen echte betalingen, geen echte levering. Demo account kan geen wijzigingen doorvoeren.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.screenager.be/blog/archives/446/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

