Click here to Skip to main content
15,881,793 members
Please Sign up or sign in to vote.
5.00/5 (1 vote)
See more:
Dear All,

I have a requirement to develop a application that will reside in a pen drive. User will open it using his PC without internet (offline backhand and Front app both will be inside pen drive)and Update his info whenever he want. Second he will have also an online account for it. he can update his info in online account. the application will synchronize the info between both online and offline database.

My question are?

1. As application in C#.net (i have to use) then could it run on Apple Mac, Linux and other platform?
2. Application Must run with in Pen Drive. It will never installed any thing on User PC or Laptop. is it Possible?
3. Which Databases should i use for Both online and Offline Database which easily synchronized and compatible in Pen drive and on all platforms(Windows, Mac and Linux etc...).

Thanks in advance...
Posted

Please see my answers:

  1. Yes, this is quite possible if your application is done very accurately, uses only the standard .NET libraries and some limited set of non-standard ones.

    On non-Windows OS, you can use Mono platform, an alternative Open-Source implementation of CLR: http://en.wikipedia.org/wiki/Mono_%28software%29[^], http://www.mono-project.com/Main_Page[^].

    For an important examples, System.Windows.Forms and ADO.NET are non-standard libraries, but are supported on Mono very well.

    Some incompatibilities exist, so it would be a good idea to start testing on Mono for Windows.

    Practically, I develop console and Forms applications on Windows, and they run on Linux without recompilation. I have enough experience to do it without debugging on Linux and Mac OS X site.

    I did it on Mac, too, but the applications do not look native Mac OS X citizen as Mac is very hostile to "foreign" developers. There is a Mac specific library and special runtime working on top of Mono, called Monobjc: http://en.wikipedia.org/wiki/Monobjc[^], http://www.monobjc.net/[^]. It is also Open Source and support almost everything on Max OS X and iOS in a native style.
  2. This is absolutely possible, but the prerequisite is .NET or Mono on Windows, Mono on other platforms, in version compatible with your code. Not to worry: those platforms are easy to install. As to .NET, consider it as yet another upgrade as OS. It's becoming an integral part of Windows, you just need to upgrade it.

    Don't even consider it as a limitation. After all, many program refuse to work on XP without SP3, and this is quite legitimate. Same thing is .NET.

    As to you .NET application working without installation — this is a best style of packaging; these days, it is highly encourages by Microsoft (finally!). You need to test the application to make sure it can work on any directory. This is quite easy.
  3. Selection of database is up to you. I would advise to use something based on client-server model (I mean, forget about file-server based garbage like Microsoft Access) and of course multiplatform.

    You have a pretty good selection:
    http://en.wikipedia.org/wiki/Comparison_of_database_tools[^].


—SA
 
Share this answer
 
v2
Comments
Sergey Alexandrovich Kryukov 6-Feb-12 0:55am    
[OP commented in the "solution"; the text moved to this comment; some typo fixed -- SA]

Thanks for your prompt reply. it is so helpful for me,

1. As C# Application Require .NET framework which already installed in all Windows version [? -- SA] later XP (also XP support with service pack). But what about .NET framework on Mac Platform (it will require to install or using Mono framework it is not require.)

2. did Mono framework require installation on Client Side(user PC or Laptop)?

3. I choose XML for Offline (Pen drive application ) and Sql Server for Web application. is it good or any other combination better then it?

4. Can we install any SQL server version[? -- SA] inside pen drive?..

Mr SA, [??? -- SA]
Sergey Alexandrovich Kryukov 6-Feb-12 1:18am    
OK, see also another answer:
http://www.codeproject.com/Answers/325355/Application-for-FlashDisk-or-Pen-Drive#answer4

--SA
If you need to develop a cross platform application you are not confined to .NET framework.

You can also use well known Qt Framework :
http://en.wikipedia.org/wiki/Qt_%28framework%29[^]
I have worked with it and its very good.

Also consider the new Delphi XE2's FireMonkey :
http://en.wikipedia.org/wiki/Embarcadero_Delphi[^]

http://www.embarcadero.com/products/firemonkey[^]

Good Luck.
 
Share this answer
 
Comments
nrpkss 6-Feb-12 1:16am    
Thanks for your prompt reply. it is so helpful for me,

1. As C# Application Require .NET framework which already installed in all Windows version [? -- SA] later XP (also XP support with service pack). But what about .NET framework on Mac Platform (it will require to install or using Mono framework it is not require.)

2. did Mono framework require installation on Client Side(user PC or Laptop)?

3. I choose XML for Offline (Pen drive application ) and Sql Server for Web application. is it good or any other combination better then it?

4. Can we install any SQL server version[? -- SA] inside pen drive?..
Amir Mahfoozi 6-Feb-12 1:25am    
If cross platform is your main consideration you should choose your development platform carefully.
Also maybe the storage you need on the Pen Drive is so simple that you just need to store them on a binary file and there was no need to add a database engine overhead to your application. So think flexible about every thing and don't bind yourself to Brands or Names.
Sergey Alexandrovich Kryukov 6-Feb-12 1:40am    
Good points!
--SA
Amir Mahfoozi 6-Feb-12 1:41am    
Thanks Sergey :)
Sergey Alexandrovich Kryukov 6-Feb-12 1:25am    
Those are good points, my 5.

The question by OP is not related to you answer, but I added another answer, please see.

Believe or not, I added two more answers (have 3 of them in total). The thing is: you reminded me to mention non-CLR options, but missed one greatest thing: FreePascal and Lazarus (IDE). But the way, FreePascal is much closer to .NET that all those C/C++ and perhaps even Java, to some extent.

Please see this my answer, too.
--SA
[Answering follow-up questions placed in the comment to Application for FlashDisk or Pen Drive[^]:]

  1. XP SP3 is good to install .NET Framework v.2.0 to v.4.0.

    With Mac OS X and Linux, you will need Mono, absolutely required. With Mac OS X, you might want to use Mono + Monobjc.

    Besides, for convenience of testing and debugging, it's good to have Mono on Windows development machine.
  2. I have no idea where you want what services or client parts. In general, the situation is pretty simple:

    You can develop distributed application and use CLR and develop applications compatible with .NET and Mono, and freely combine Mono or .NET on different or even same machine. If two parts of distributes applications communicate, any of those part can be executed under either .NET or Mono, on any of the supported platforms.

    By the way, it's not clear what do you mean "off-line"? Do you mean local network only, or no network at all? If there is no network, your client and server parts are on the same machine. Well, this is possible, of course.
  3. I never tried. Theoretically speaking, it could be possible, but can be more or less difficult. You need to learn all aspects of setup, draw your conclusions and try to see if it is possible.

    The problem is: your host system does not "know" what's on a removable drive. The binding to the installed software is usually done through the system Registry. You could think of something like "temporary installation" (Registry only), but I'm not sure there is enough documentation to implement such exotic settings. I also don't know where do you want to use client or server part of the RDBMS and what should it mean "offline".


[EDIT]

For ASP.NET Web applications, you can also use Mono. You should use Apache HTTP server with the module named "mod_mono". Please see:
http://en.wikipedia.org/wiki/Apache_HTTP_Server[^],
http://httpd.apache.org/[^];
http://en.wikipedia.org/wiki/Mod_mono[^],
http://www.mono-project.com/Mod_mono[^].

Both are also multiplatform and Open Source.

—SA
 
Share this answer
 
v2
Comments
nrpkss 6-Feb-12 1:29am    
ok let me more clear my requirement.

i have to develop two application one is Windows App 2nd is Web App.
first app will resides in Pendrive and need not internet or any network to run. its just an plug and play means both app and database will be in pendrive. no need of internet or any other network.

second application is web application which store all users info on web server and obviously require internet. User info will store on two places 1st in pendrive and second is on web server .

when user want to synchronize his info then he will need internet on his PC or laptop to communicate between both database. So according this please suggest me best Solution...
Sergey Alexandrovich Kryukov 6-Feb-12 1:48am    
Please see my update, after [EDIT].
--SA
As Amir added non-CLR options, I'll add one more multiplatform language and development system: FreePascal and IDE called Lazarus. Both are multiplatform and Open Source. Please see:

http://en.wikipedia.org/wiki/FreePascal[^],
http://www.freepascal.org/[^];

http://en.wikipedia.org/wiki/Lazarus_%28IDE%29[^],
http://www.lazarus.freepascal.org/[^].

—SA
 
Share this answer
 
Comments
Amir Mahfoozi 6-Feb-12 1:39am    
+5 I always support and welcome non MS solutions specially this one which was my favorite language(Pascal).
Sergey Alexandrovich Kryukov 6-Feb-12 1:44am    
It looks like you forgot to vote :-)

I'm glad to here it about Pascal. I used a good deal of Ada and Ada 95, big part of Turbo Pascal, full lifetime of Object Pascal and Delphi from its first version and think this like of languages really promote much higher culture of programming than "popular" C, C++ and Java. C# and .NET got a lot from Delphi, so I consider it as "back to civilization".
--SA
Amir Mahfoozi 6-Feb-12 1:55am    
I have upvoted it.
I read your history in your website. I believe that those times were very glorious days for Pascal and Delphi.
Read this article it confirms your "back to civilization" term :
http://delphi.about.com/od/delphifornet/a/conspiracydnet.htm
Also it has mentioned some conspiracy theories that is better name it betraying to Delphi supporters ! :-&
Sergey Alexandrovich Kryukov 6-Feb-12 2:06am    
Thank you for voting and an interesting article.
However, why conspiracy? There is nothing mysterious -- .NET and and C# were created by Anders Hejlsberg, the architect of Delphi:
http://en.wikipedia.org/wiki/Anders_Hejlsberg
--SA
Amir Mahfoozi 6-Feb-12 2:13am    
Yes I know. In page two of that article we see this :
After two years, Borland and Microsoft have settled their lawsuit. In a joint statement, Borland and Microsoft said, "We believe this settlement is in the best interest of both our companies. This settlement resolves any legal questions surrounding the lawsuit and allows both companies to move forward." With that short statement, both companies have agreed to make no further comments on the settlement. Details of the settlement were confidential. So this suit was eventually settled; by that time, however, Microsoft had put Hejlsberg to work.
And in Page three :
In exchange for a desperately needed $125 million cash infusion, Borland gave Microsoft the blueprints for much of its key technology, let Microsoft off the hook by settling long-standing patent disputes, and agreed to tie its own tools even more tightly to the Windows operating system. Inprise agreed to provide full access to more than 100 of its technology patents, including spreadsheet technologies and pending patent applications related to newer products. This transaction signified final victory for Microsoft in an epic battle to control the desktop database and development tool businesses.
Maybe there is another suitable word for this action, like "Business" :)

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900