webForumDet fria alternativet

Feedback på kod och arkitektur

.NET

6 svar · 478 visningar · startad av Lukaspojken

Medlem sedan maj 20011 312 inlägg
Frågan#1

Under några dagar har jag testat att göra min första simpla Silverlight applikation. Jag har också försökt utgå från bland annat LINQ, Domain Driven Design och Test Driven Development. Det skulle vara intressant att få feedback på det jag gjort. Jag är ingen expert i området men vill gärna lära mig mer.

Du finner koden och spelet på följande address:
http://kauppi.levasunt.nu/2008/08/13/minnesspel-i-silverlight

Medlem sedan aug. 20003 575 inlägg
#2

I Game har du dessa fält som du kan bryta ut till ett eget om man skall följa DDD.

 
        public int Difficulty { get; set; }
        [DataMember]
        public string DifficultyName { get; set; }

ex:
       public class Difficulty
       {
            public string Name { get; set; }
            public int Level { get; set; }
       }

Kanske skall heta ChangePlayer eftersom den egentligen bara byter spelare.
Egentligen borde det vara
ChangePlayer(Player player); och att du skapar upp Player någon annanstans.

        public void AddPlayer(string Name, string ip)
        {
            Player player = new Player();
            player.Name = Name;
            player.IP = ip;

            Player = player;
        }

Dina factories, gör hela klassen internal istället för bara metoden.

Kollade bara på BLL en snabbis, funderar lite på GameLevel och Game repositorierna och undrar om dom egentligen behövs?

En annan sak som kan vara en smaksak. Microsoft döper sina singleton properties till Current

Så istället för GetIntance(), gör en Property kallad Current. :)

Medlem sedan maj 20011 312 inlägg
#3

Tack för din feedback! En difficulty klass låter som en bra idé. Jag ska göra lite ändringar utifrån det du tagit upp. Återkommer när detta är klart!

Medlem sedan maj 20011 312 inlägg
#4

Nu har jag fixat till de ändringar du tog upp. Jag valde dock att kalla den nya klassen för GameType.

Tycker du det är ok att att returnera IEnumerable<DataRow> i MyMemoryDAL -> GameResult.cs? Eller finns det något bättre sätt att göra detta på?

Medlem sedan aug. 20003 575 inlägg
#5

Jag har bara kollat lite på BLL, men jag tycker alltid att det är bättre att skippa DataTable's.

Jag pushar alltid för NHibernate så jag får göra det här med :).
Alternativt nu när det är så få klasser så kan du ju implemmentera den själv med sql.

Medlem sedan maj 20011 312 inlägg
#6

Jag gillar heller inte datatabeller. Att implementera NHibernate vore inte dumt. Ska se om jag kan få till det. Har aldrig jobbat med det tidigare.

Medlem sedan aug. 20003 575 inlägg
#7

Använd inte Nhibernate.org där ligger bara den gamla, använd http://sourceforge.net/project/showfiles.php?group_id=73818.

Sedan finns det massor av information om det på nätet bara att söka, det finns en bok som beskriver riktigt bra också NHibernate in Action.

284 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
159 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)