Group Chat Feature - c#

I want to add a chat to my xamarin.forms app.
I've read alot of documentations about creating chats in c# but still I couldn't get an answer some of my questions:
What is the best(performance) way to create a chatroom(like a groupchat) i've read using a thread per room could be a solution but this seems senseless to me ...
Is there any Git-Projekt which implements a groupchat function where I can get some insights ?
What do I have to keep in mind in terms of my infrastructure - how can I connect my chat to SQL ?
I know these are alot of questions but I really dont know where to start.
I hope someone can help me out.

I've been using PubNub for a while, and its awesome.
You can consult examples in Android and iOS.
It has full PCL support so you don't have to do specific Android/iOS code to exchange messages.
I've also read a lot of the tests they have in the PCL and get good information from that.
You have Real Time Framework, to exchange real time messages.
They also have a very good support.
For the SQL, you have SQLite-net.

Related

Throttling network for other applications

A friend likes to limit his applications to a use a certain bandwidth-limit. Seen as he doesn't have the widest connection and - for example - not every application that downloads/uploads has the ability to throttle/limit their downloads/uploads (Like Steam or a torrent downloader.). So he was wondering if I could maybe put something together since I fiddle around with WinForms often. I recommended NetLimiter and NetBalancer, but I was curious as to whether I could make this in C# myself.
I have searched the web and found some decent solutions as to throttling in an application itself but as to throttling applications outside of the current application you have the source code of, I haven't been able to find anything that would help me understand how to program this from scratch.
Do any of you know how I'd go about throttling other applications? Would I have to write my own network interface and have Windows reroute traffic through that?
Thank you for your time.
EDIT: Seen as the first comment tells me I'm at the wrong address with C#, I rephrased my question in the hopes of a better way to get an answer.

Quickbooks Desktop SDK Perofrmance

We are using the QuickBooks SDK to communicate with QuickBooks desktop.
It could take very long (like more then about two minutes) to retrieve results from QuickBooks , or to update a single record,
so my question is as follow:
is this a normal behavior?,
does anyone have a workaround for this problem ?
more info on our QB file its about 200 megabyte and the file is stored over a local network .
The QB desktop SDK is a nightmare, developed by an XML enthusiast who doesn't understand OOP. The documentation actually argues with users about why it's better that things are done this way. To be fair to the SDK team, they inherited an ancient, homebrew datafile system (that was probably created by generalist programmers) and had limited options. QB Online is essentially Intuit's effort to re-engineer the backend, hopefully using proven RDBMS products this time!
So, to answer your question directly, the only workaround I know of is to dump QBD for QBO or another accounting platform.
is this a normal behavior?
For many situations, yes. You didn't really give much in the way of specifics, so there's not really much else to say here.
does anyone have a workaround for this problem ?
The same solutions anyone would have for any other resource- or time- intensive job.
Batch jobs. Caching. Async communication.

Writing C# and CIM Application

I know this isn't straight programming and debated posting this for a few days. I am interesting in writing a utility to talk to network switches and gather statistics via CIM. After several days of searching I can't find any decent examples to help get started. I did find one project from Microsoft but it queries machines running Windows and requires Windows 8. I have Windows 7. Also, the few examples I've seen use the WMI which I think is for talking to other Windows systems.
Does anyone have any suggestions for examples or other reading?
I found a project that I think will work. If anybody else is interested, look into wbem-sharp.
I'm not sure how active wbem-sharp currently is...
As an alternatve, you could use the SFCC client, and integrate its C-Language client API into C#. SFCC is well-maintained and supports the current CIM/WBEM standards.

.NET webpage/service/app communication

Alright guys, I'm in a little over my head on this one and am hoping someone can point me in the right direction, as I'm not really sure how to implement this.
I've got a piece of hardware that exposes a c#.net API. Great. Works wonderfully. I want to collect data from this hardware using the API (so, a small c# app that does what I need) and then display the results on a web page. Currently, I have the c# app grab data I care about and stick it in an RRD file, then I have the web page load the relevant data and display it to the user.
My question, then, is what do I do when I want to expose some of the API functionality to the user? How do I go about making the 2 projects talk using .NET?
Some clarification: The reason there are two parts is due to modularity. The attached hardware and API can change, but as far as any client request is concerned, nothing's different, everything's just a web request to them.
Very little experience in big .net projects, so if you've got a better idea, let me know.
The easiest way I can think of would be to use something like NServiceBus to post a message to the other component which communicates with the hardware. The hardware piece would pick up the message from the bus, process it and put the response back on the bus.
It's not a perfect solution, but I think it's definitely workable.
You should be able to find everything for it here.
Left it here for a few days to see if anyone else had any ideas. I ended up scrapping the whole idea and consolidating everything into the web app. Not my initial preference, but it works okay. Thanks to Terrance for the brainstorming session under my question.
Easy. Create a class library for the device handler. Add a public class which exposes a nice interface for the web app. Add a reference to the class library. Create your class and use it.

any WCF libraries to make it simple?

I've got I admit that I'm probably too dumb to fully learn and understand WCF. :(
On the other hand I had learned and used xmpp pretty well ( using MatriX XMPP library ).
So I wanted to ask, maybe there are some other libraries that help passing data from one computer to another to make life simple?
i.e. a library that would open a port/connection and both listen to incoming commands from other computers, as well as be able to send such commands to other computers that are listening to it.
Thanks!
WCF is not a hard technology... there is a learning curve, but ultimately someone who has taken the time to learn how to do it can easily implement the functionality in a couple of minutes.
i.e. a library that would open a
port/connection and both listen to
incoming commands from other
computers, as well as be able to send
such commands to other computers that
are listening to it.
Not really. Most of WCF involves setting up your app.config files so that they work on both ends. And I doubt there are any libraries that can do that for you.
You simply HAVE to generate and implement a service contract and implement the endpoints/meta data.
MSDN actually has a very decent tutorial. Getting Started Tutorial
Even if you DID find a "helper" you should still take the time to learn the technology so that you are prepared to troubleshoot and fix it when it breaks.
And if:
I've got I admit that I'm probably too
dumb to fully learn and understand
WCF. :(
were true... you wouldn't be a programmer.
My journey to understanding WCF happened right here on Stackoverflow... you can check it out at : Cross Application Communication (C#).
It might help you understand a little bit better.
Two options come to mind.
If you want to use WCF, the check out ECollective from SOA Collective. Uses managed mode Discovery to create a config-free WCF client, abstracting all of the things that makes WCF hard like bindings and behaviors.
If you want to use something other than WCF, check out NServiceBus.
Try the Idesign Website ... they have a WCF library that you can download and use in your projects.

Categories

Resources