Hej, Beroende på hur komplexa frågor du har och hur stor datamängden är så är det kanske inte alls rätt att använda en databas. Om du använder SQL-server (även Express-varianten) krävs att det finns installerat hos användaren. För klientapplikationer som inte har MYCKET STORA krav på prestanda vid stora datamängder är det helt onödigt med en "riktigt" DBMS som SQL Server, MySQL m.fl. Och man kan även ta med att det faktiskt kan vara så att filbaserade databaser är snabbare än serverbaserade, beroende på en rad olika förutsättningar. Så det kan vara så att du faktiskt tjänar på att använda SQLite (vilket jag har mycket trevliga erfarenheter av) eller Access. Ok, tack för bra svar! <b>Om jag nu utvecklar med access-databas kommer det att funka för slutanvändaren att installera programmet?</b> MDAC är biblioteket med alla komponenter som behövs för data access i olika scenarion. Där finns tex native dllerna för att kommunicera med sql server. Alright! Bra svar igen. Då har jag fått detta förklarat för mig.distrubuera program
Jag håller på och utvecklar ett program i .NET (c#). Programmet skall använda databaser i stor utsträckning. Min fråga är hur man gör sen när man vill distrubuera programmet till slutanvändare. Skickar man med nån dll eller nåt som gör att användaren inte behöver ha sql-server eller sql express installerad?
Programmet sparar ner info om olika golfrundor och sen ska man kunna söka på en runda.
Tänker jag rätt när jag använder databaser till mitt program. Är det bättre att använda xml-filer? Kan man söka i xml-filer på ett snabbt sätt?'
Tacksam för svar
// TomasSv: distrubuera program
Sv: distrubuera program
Du bör istället använda någon filbaserad lagring. Ett dataset som du serialiserar till en XML-fil fungerar bra vid inte allt för stora datamängder och det går snabbt att söka i.
Annars är det någon filbaserad databas som gäller. Personligen skulle jag satsa på SQLite (som Henrik föreslog) eller Access. SQLite har jag ingen erfarenhet av, men det finns en .NET connector till den som inte har några beroenden, du levererar enbart en dll-fil i ditt programs installationsmapp så det verkar riktigt smidigt. Jag har själv använt Access mycket till denna typ av tillämpningar. Jag har aldrig haft problem med det (flera 1000 installationer) men OleDb-providern kräver att en viss version av MDAC är installerat och det skulle i teorin kunna vara ett problem. Men jag tror inte det går att installera .NET Frameworket om det strular ändå...
/JohanSv:distrubuera program
Sv: distrubuera program
Om jag nu utvecklar med access-databas kommer det att funka för slutanvändaren att installera programmet? Finns det access-runtime i windows? Skulle också gärna vilja få MDAC förklarat mer för mig.
// TomasSv:distrubuera program
Ja, du behöver bara skicka med programfilen(filerna) samt se till att .NET Framework är installerat.
<b>Finns det access-runtime i windows?</b>
Nja, med Access-runtime brukar man mena en "bantad" version av Access-programmet som används för att köra applikationer som är utvecklade med Access. Men för att arbeta med Access-filer via ADO.NET behövs inte den. Allt som behövs finns redan i datorn (se nedan).
<b>Skulle också gärna vilja få MDAC förklarat mer för mig.</b>
Jag är inte helt säker på arkitekturen här, så detta kanske inte stämmer 100%. MDAC (Microsoft Data Access Components) används av ADO.NET för att ansluta till databaser. För att installera .NET Framework (där ADO.NET ingår) krävs det att MDAC finns installerat. På WinXP (och KANSKE Win2000) finns det installerat från början, på äldre versioner måste det installeras först om det inte finns där innan.
Så, bortsett från "kraven" för att köra .NET-program så krävs inget mer på datorn för att jobba med Access-databaser.
/JohanSv: distrubuera program
Det är dessa som ADO.NET "wrappar" delvis. Just SqlClient mm är lite speciella för de använder bara kommunkiationsstacken i MDAC och det mesta andra är implementerat i .NET till skillnad från OleDbClient som har hela sin funktionalitet i dessa dller.Sv:distrubuera program
Tack.
// Tomas