The Jukebox Orian Paz & Yair Cleper Instructor: Viktor Kulikov Semester: Spring 2009 Final Presentation Motivation ♫ Several websites today are developed to let their users listen to the music of their choice from an existing data base. ♫ None of them allow users to broaden the data base by uploading their own audio files. ♫ A combination of these two is needed! Goals ♫ Building a website in the .Net environment ♫ Building a large database and manage the connections within the web site ♫ Creating a friendly user interface which allows uploading files to the database ♫ Understanding and using the latest technologies of Microsoft Technologies & Languages ♫ .NET 3.5 Framework ♫ LINQ ♫ Microsoft Visual Studio 2008 ♫ AJAX ♫ C# ♫ Java Script ♫ SQL ♫ Silverlight ♫ ASP.NET General Requirements ♫ Clients: registration, login, rate songs, hits mode, block songs, report song, upload song, change profile & music genres. ♫ Administrator: view reports, change songs details, change users details, create new administrators, change text in the web site. Design N-Tier Gui ASP.NET, Ajax Business Logic C# Data Access LINQ Data Base SQL Implementation The Database ♫ SQL ♫ Microsoft SQL server ♫ Tables: ♫ Uniquidentifiers ♫ Use tables that connects two other tables to save space and for flexibility. ♫ Views ♫ Stored Procedures: ♫ Transactions The Database Tables: groups blocked_songs group_id blocked_songs_id group_name song_id user_id users report_song report_song_id user_id song_id user_name user_id password is_bad_title person_id is_bad_artist group_id change_text change_text_id place song_id text1 title artist is_corruppted_link is_bad_album persons is_bad_year is_not_right_song person_id album rank rank_id user_id state the_rank age homepage first_name last_name user_to_genre user_to_genre_id year song_link song_id email sex songs songs_to_genre genre songs_to_genre_id user_id genre_id genre_id genre_id genre_name song_id The Database View Example: Data Access Layer DAL options Data Sets LINQ to Stored Procedures ♫ Automatic Microsoft’s ♫ not automatic, meets the tool exact applications needs ♫ One connection in a ♫ Open new connection session several times in a session ♫ Caching ♫ useful when application ♫ Useful when application saves a lot of data in a session saves small amount of data during a session that needs to be updated live Data Access Layer ♫ LINQ ♫ Interface ♫ SQL provider ♫ Method overloading Data Access Layer Business Logic ♫ C# ♫ Containers of objects: has-a relation ♫ No in heritance needed ♫ Separation of user’s properties and user’s operations. Business Logic ♫ User’s operations ♫ Authenticate user’s authorization at login ♫ Play next song for user in play mode & hit mode ♫ Get user’s information ♫ Store new information from user Business Logic Business Logic GUI ♫ ASP.NET web forms ♫ Separation of code and aspx files ♫ AJAX ♫ The media player is a Silverlight add-on ♫ JavaScript ♫ Different GUI for administrator and client Self Achievements During the work on this project we gained a great amount of knowledge: • Design a well-constructed database. • Write SQL queries. • Views. • Write C# code. • Choose the most suitable classes for a specific goal. • Create an ASP.NET web site Self Achievements • Use LINQ. • AJAX. • JavaScript. • .Net. • Design a web site project using the 3-Tiers architecture. • Separate design and it’s implementation • Gather professional information in the internet. • Team work. Thank You!