Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
I am planning to realize one of my ideas. Therefore I would like to develop a web application and seperate apps for iOS, Android and Windows Mobile.
The application will write and read data in/from a DB.
Because I´ll start completely from scratch I´m open minded to all technologies.
I´ve never developed a website with business logic before and haven´t done mobile app programming yet. I am familiar to c#, .NET, HTML, CSS, JS and I love to work with Visual Studio.
As you may already assume, I want to share as much business code as possible. After doing some research I think using Xamarin to develop the mobile apps in c# would be a good idea. To share business code between web and mobile I thought about implementing a webservice which both clients could call.
Before I start with coding and may choose the wrong tools for the job I want to evaluate what would be the best way to do it.
It´s no must to use the technologies I´m familiar to, I´m willing to learn any technology if this brings a real advantage. Anyway it would be great if I could use c# and the .net framework.
To eliminate any missunderstoodment, I´m not searching for one perfect fitting technology, but for a stack of technologies which fit together perfectly and do the job best.
Which technologies could you suggest me for the job?
This is my first post on stackoverflow. Please inform me if I´ve forgotten any important information.
Thank you in advance.
For me, if you normally use .NET for developping, using Xamarin can be a very good solution for the business logic, mostly if you use ASP.NET 5. You should do a very good job mixing, ASP & Javascript for the website and a lot of business logic & data should be done after this develpment for the mobile part.
You juste have to create a good architecture to avoid specific code.
For Xamarin the negative point can appears if you have a lot of specifics platforms features to implement.
Let's explain this point :
Xamarin offer us two way to develop Cross-Platform applications, you can share UI & Logic ( Xamarin Forms ) or you can only share the Logic ( Xamarin Core ).
The advantage of forms is that you can easily code a cross plateforme UI with a simple design.
The disadantage comes when you want to do a lot of specific coding for each platform or used native features ( for this case the best solution is to use Xamarin Core )
And if you use the Xamarin Core, you should know IOS, Android & Windows Phone bases, because you use a "copy" of the native code for each platform.
The last point that I can suggest for the mobile part is to use a JS Framework like Cordova, this can be a good solution to do the website and the mobile applications in a single time.
This kind of platform have the same problem than Xamarin.Forms, if you want to do some specific coding for each platform or use native features from each platfom, you will need to install plugins & possibly create specific code.
I hope my explanation can help you to choose the best way to develop your application
If you are familiar with C# and Visual Studio, Xamarin is perfect solution, but if you want to use web technology then you have many options to use such as Cordova or TypeScript (TypeScript is typed superset of JavaScript that compiles to plain JavaScript. It works everywhere and is open source).
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I have a web app in my company that does a variety of things, it is coded in C# ASP.Net and it works very well for what it is intended.
At this point in time, it only works from within the company LAN (or on VPN) it has basic (AD based) SSL and uses username/passwords stored in a database.
Someone had the idea of making an iOS (and possibly android later) front end for it. I only briefly touched iOS developing in the past and am trying to pick it up again now.
I've just done version 1 which is really a cheat... Having a whole page web frame that simply loads a new HTML5 responsive version of the app.
I really want to get a proper rich client version going, but, I am having problems getting off the starting line - I can build a basic API, but, I don't know what technologies to look at to make it secure.
Ideally I need something that works as a client on iOS, and server using ASP.Net c# - but, I am willing to learn/use other technologies.
I have been struggling for the past week trying to find courses or what direction to go down, but, I'm just hitting brick walls and haven't made much progress. Can anyone give me a kick in the right direction?
I would suggest you use a REST framework for your server, something like WebApi5 or servicestack, it's likle a webservice but in other flavor, more lightweight and really the most used today.
For the client part, I would suggest use Xamarin, if you use Xamarin you can create a Xamarin Forms app and kill two birds with a shot, get iOS and Android, then, in the clients use something like RestSharp, this will lead you to use technologies what you already know (C#, XAML, etc) with really good results.
I work exactly doing things like that, I have created my own REST system through the years, but to start I would recomend using WebApi as it would maintain your infrastructure.
I work on ServiceStack which as a primary goal aims to provide a productive development workflow for consuming .NET Web Services efficiently from both native iOS and Android Apps as well as C# iOS and Android Apps with Xamarin iOS/Android.
To enable this ServiceStack provides an end-to-end Typed .NET Web Services API that can be consumed with native iOS Swift Apps with its Swift Add ServiceStack Reference directly from within Xcode.
Using Xamarin for developing your mobile iOS and Android allows good re-use of your non-UI C# Business Logic which you can take advantage of in ServiceStack with its .NET PCL Service Clients which lets you either share your DTO .dlls to enable an end-to-end typed API without code-gen.
Alternatively you can use C# Add ServiceStack Reference to instead generate and update the remote Web Service types directly in your VS.NET or Xamarin Studio projects.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
A friend has asked me to look into developing a custom system for his taxi cab company. Currently they have no system in place at all to handle their accounts or the jobs/booking etc. Eventually there will be extras like mobile applications to book but for now i need to get a backbone system developed.
He is talking about building it all as a web app, so all the accounts information/invoices etc are all in one location (most likely on a secure dedicated server) so that the ppl in the office or himself on his tablet if hes out and about can easily see what is what etc.
Part of me for some reason is not 100% convinced this is the best idea, but it does keep it all in the same place it does mean that if for example i write something in .net it doesnt need to be installed on all the machines and he can access it all from home or his tablet.
Can anyone think or link to a study paper or something, which might suggest which way is the better way to go with this? if its a web app it will most likely be done in php/html5 (i have been learning Django but dont think my skills are all there yet) if not a web app it will most likely be Java or C# (i am in the process of learning c++ but again skills arent all there.)
tldr: C#/Java system or php/html5 web app for a taxi accounts/booking system.
If this is the wrong place to post this sort of question, deepest apologies and close accordingly
I'm a desktop dev and in this case it's probably better done in the web.
If we use C#:
we have a server and a conbecting program. c# doesnt work everywhere (though java does) but just for something relatively small like this it's past overkill. but you can have offline data (if its needed though)
web:
easy to access (just need a browser) and light
THIRD OPTION:
C# can be used to develop web applications. as sich you can make it in C# and have it be accessible through a browser. (I would choose this, but I'm a desktop dev so I guess it's normal).
I'll leave you with this, mainly post to show you theres another way.
I'm not a desktop application developer, but I will chip in my opinion. The web has come a long way and it's very easy to make web user interfaces now. The biggest benefit you will probably gain from a web application is it is operating system dependent; anyone with a web browser will be able to use it.
My opinion,
I would have set up a server in Java/C# etc with a restservice or something similar, that way you can easily combine both web and desktop applications. Get the best of both worlds :)
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
Can anyone help me how to do UI Automation in WPF? I want to check the operation of a Grid.
If you just want to automate WPF and NOT WinForms, check out Telerik's free framework. There's also a paid version if you want more features like record-and-playback.
Two open-source C# libraries that support automation of both WPF and WinForms controls are:
White
I've used this, and found it to not always be reliable.
QAliber
I've used this, and found it to be good but needing work.
Both are open-source, so they'll show you how to use Microsoft's API's, and you can modify them to meet your needs.
I've also used Coded UI Test and Ranorex, but they're both $$, and I don't care for record-and-playback because I feel it's a maintenance issue. (Although QAliber does have a record-and-playback feature and White also has an alpha-quality recorder.)
Of course you could always go it directly from Microsoft's API's if you really want to get down and dirty.
Use the tools built into Visual Studio - Coded UI Tests:
http://msdn.microsoft.com/en-us/library/dd286681.aspx
There are two methods of doing this: Record and generate code (tends to be a good starting point, but often doesn't give you reproducible tests), and manually coding them up via UI object tree.
I ended up doing the second option most often, because I liked the code I wrote much better than what the recorder functionality offered.
You can try PROJECT SIKULI:
Sikuli is a visual technology to automate and test graphical user
interfaces (GUI) using images (screenshots). Sikuli includes Sikuli
Script, a visual scripting API for Jython, and Sikuli IDE, an
integrated development environment for writing visual scripts with
screenshots easily. Sikuli Script automates anything you see on the
screen without internal API's support. You can programmatically
control a web page, a Windows/Linux/Mac OS X desktop application, or
even an iphone or android application running in a simulator or via
VNC.
Here is a good blog post to get you started on UI Automation:
Silverlight UI Automation Testing using Prism 4.0
It's Silverlight based, but the Silverlight is very close to WPF, and the UI Automation concepts involved are exactly the same.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
I have couple of ideas in my brain which I would like to bring out before it's too late. Basically I want to develop a web application which I could sell it to clients. So which technology shall I use to accomplish this? I have been a C and C++ software developer but it's been a very long time since I have developed one. So the things I would like to know is:
Scalability and Performance?
Easy way to develop web application in a faster manner?
Any Framework?
Application server?
and which programming language?
Usually the programming language doesn't really matter. All have their own strengths and weaknesses. All come up with their own best-practices and frameworks.
It's really up to you what's your preference. If you are coming from Microsoft C/C++ I'd use .NET, if you are from Linux world I'd use Java.
Back in the 90s Java was well known as a slow framework, however there was much of myth and the framework architecture is dramatically changed since that. Today, there is no generally slow or fast framework.
You can find thousands of sites in the web that tell you that the one or the other is faster. However, at the end of the day it depends on how you implemented your solution and how you utilized the best features of the framework.
Greets
Flo
I would suggest using C++ with CPPCMS as it's becoming stable and is precisely targeted at high performance web applications.
See if the rationale match your goals.
Build with:
C#, you'll love it (I'm also an old C++ developer)
ASP.Net MVC (Validation, caching, Spark view engine)
Any ORM having a cache layer (I prefer nhibernate)
Database with lots of allocated memory
I kinda think this is almost more like a religious problem, than a real technical issue. For almost every programming language you can find a big website that's using it.
.NET -> Microsoft
Ruby -> Twitter (yes, they have a few issues, but still)
PHP -> Facebook
Java -> Lots of finance companies
Don't know about Phyton, but I'm sure there is.
More important is a good scalable architecture. That is where Twitter kinda screwed it up it seems.
Personally I use ASP.NET. Works fine, is somewhat easy and has a nice IDE. And the market is not so fragmented. Before I used Java with Websphere. Was running on a Sergenti Sun Box, so could definitely handle a lot.
I would more see into what you can get yourself into the quickest. If you know C++ C# or Java are easy to learn.
You should take a look at ASP.NET.
Using ASP.NET has got a lot of advantages, and it is very performant. Here you've got a short list of some advantages:
ASP.NET drastically reduces the amount of code required to build large applications.
With built-in Windows authentication and per-application
configuration, your applications are
safe and secured.
It provides better performance by taking advantage of early binding,
just-in-time compilation, native
optimization, and caching services
right out of the box.
The ASP.NET framework is complemented by a rich toolbox and
designer in the Visual Studio
integrated development environment.
WYSIWYG editing, drag-and-drop server
controls, and automatic deployment are
just a few of the features this
powerful tool provides.
Provides simplicity as ASP.NET makes it easy to perform common tasks,
from simple form submission and client
authentication to deployment and site
configuration.
The source code and HTML are together therefore ASP.NET pages are
easy to maintain and write. Also the
source code is executed on the server.
This provides a lot of power and
flexibility to the web pages.
All the processes are closely monitored and managed by the ASP.NET
runtime, so that if process is dead, a
new process can be created in its
place, which helps keep your
application constantly available to
handle requests.
It is purely server-side technology so, ASP.NET code executes on the
server before it is sent to the
browser.
Being language-independent, it allows you to choose the language that
best applies to your application or
partition your application across many
languages.
ASP.NET makes for easy deployment. There is no need to register
components because the configuration
information is built-in.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
In looking at the use of C# in a ISV setting, I'm wondering what prominent C# based desktop apps are out there? I can think of only Paint .NET.
Is C# a good idea for an ISV, or should one stick to more native environments like Delphi or even QT?
Of course any experienced based advise or feedback would be appreciated.
Yes, C# can be used quite effectivly to build applications. In regards what applciations are out there, what are you looking for? Big apps, little apps?
I know of a big app that is built on the .NET framework (unsure if C# or VB) and that is Quickbooks.
Developing a Desktop applications in C# is great. Its not just for Web Apps.
WinForms are going to save you huge amounts of time. It really is a first class citizen when it comes to desktop windows development. If interop is a problem you can always use P/Invoke and COM object wrapping that VS does for you.
Done right, it will be a breeze to maintain and update when the client changes their mind on what they want.
Yes, the framework needs to be on the machine, But this shouldn't be a problem if they have ever used windows update. Nowadays what language doesn't come with a run time library. In VS you can create simple installers that include the runtime.
Of course if your gonna deploy to Linux and mono, your mileage may very.
PlasticSCM
If you can control the system requirements for your application, C# is fine. Some end users still (even though we're nearly in 2009 now) object to a 40MB runtime for some reason, so if you're looking to deploy an application commercially, that may be an issue for you. In a corporate setting, though, where there is some standardization of software on users' computers, this is probably not a problem.
Delphi and QT specifically are both problems. Delphi is effectively a dead language. Companies that are using it these days are, for the most part, porting their code away from it as fast as they can (job boards seem to be full of Delphi-to-C# migration jobs these days). You may like QT, but that moves almost as slowly as Delphi in the Windows world, so I would never consider it to be a real option.
More:
Business Plan Pro
Rescue Time client
Sony Vegas
Sql Management Studio
VS 2010 (much more so than VS 200x)
NASA's World Wind
BabySmash
Windows Live Writer
Microsoft Office Accounting
Fiddler 2
Windows Mobile Device Center
AdiIRC
Jetbrains dotTrace
Lots of Lenovo utilities
Planbook
These are just the ones installed on my PC...
I think that Microsoft Expression Blend/Studio is written in C#
Anything done for Robotics Studio, any XNA game (quite a few commerical ones are coming out now)
I don't see why you would not use C# as an ISV. The problem is ensuring that your target market has the .NET framework. If you are using 3.5, you can build a mini version into your distribution though this increases the file sizes for downloads of course.
Some supplemental information to think about:
One of the typical points against doing desktop applications the distribution model is a lot more difficult to manage. With web apps, if you have a large user base, you can do an update and instantly have your entire user base running on the latest version.
With traditional desktop apps, you'd have to send out an .msi or build something yourself.
However, with ClickOnce and the Updater Application Block (http://msdn.microsoft.com/en-us/library/ms978574.aspx), it's so easy to build intelligent updating into your application that it might play very nicely into an ISV plan.
Even though VS 2008/WPF is shrinking the gap, it's typically much faster to develop client applications in the WinForms space that on the web, so I think it's a very viable approach.
I believe TimeSnapper is written in C#
I have worked for an ISV before that used Delphi and it was excellent for their needs. It still produces great native applications and although dieing it is certainly not dead (yet). Until recently I would have recommened Delphi over c# for desktop applications as I had performance and footprint consderations but as .net can now be considered ubiquitous and that the platform is now maturing my opinoin would probably go with c# (over Delphi).
If you need to consider employees, you will find that there are fewer Delphi developers around that c# ones. So you may struggle to entice good devleopers in as you are using that.
That said Delphi is looking exciting again with the Delphi prism VS plugin.
Just as an aside did you know that the c# compiler is written in c++? Delphi was written in Delphi from v1.0
Windows Media Centre is powered by .NET.
I believe that MS use C# to build many of their apps both Windows and Web. At this time, C# is a great language to go with because of the flexibility of the language/framework.
The zune software (v2 and up) is written in c#. Oh, and Sage Timberline Office is written in .net (mostly).
Although it's a developer tool, the excellent open source IDE SharpDevelop was built in C#. I've also worked on another which (despite being semi-commercially-available) I'm not at liberty to divulge. (Very vertical market.)
I'm a huge fan of the C#/WinForms combination, and can't see why you wouldn't go that route if your developers are already familiar with C# and you want to get into the desktop space.
A very prominent example for a commercialy successful application would be Microsoft Visual Studio 2005 itself.
If you are looking into building a client or server application for the Windows ecosystem .Net with C# is an absolut valid choice. You'll get a very rich framework, a great third-party-app ecosystem and a huge community.
If you need a minimal memory footprint for your application or are very hardware centric then C++ maybe an option.
If you want to target the UNIX/LINUX or Apple platforms you should be looking in frameworks more native for the respective platform, though you can get a certain degree of interoperability with the Mono project (But I am not up to date on how complete their implementation of .Net currently is).
I believe the matrox graphics card configuration utilities are using the .net-framework.
I'm still just a student, but for what it's worth (and from other answers preceding mine), there seem to be quite a few apps in C#.
I'd advise working through the book Head First C# (Amazon link). This book will give you a pretty solid idea of what you can do with the language.
=-MDP-=
Creative Docs .NET is a very nice example of C# application.
Microsoft's World Wide Telescope software is written in c#
Who are your target users? Their needs will dictate your choice of language. C# and VB.NET are good general purpose langs, but if you are targeting Mac or *nix, you may want something like C++.
If you're looking for a way to get started quickly, I recently published DesktopBootstrap, which is my attempt to factor out the elements you'll need to get started.
Hope that helps!