I had started using Eclipse but also wanted to target iOS. I was using Mono for Android but they want $400 for a license, then another $400 for Mono Touch. That and the fact that I already had to purchase a Mac for iOS development sealed the deal. I decided to go with Titanium for a couple of reasons. The IDE is Eclipse but it also provides easy hooks into the native APIs of the device and everything is written in JavaScript. I am not writing a resource-intensive app and Titanium is well supported by the community, plus there's plenty of resources published by Appacelerator. I contemplated PhoneGap as well since many apps have been written by colleagues but wanted something with a bit more flexibility. Titanium also allows one to target Windows Phone and Blackberry. (in the future)
Christian Merritt
Posts
-
Is Mono for Android worth the cost? -
Is Mono for Android worth the cost?I'm venturing in to mobile development, finally, and am targeting Android first as I have a Galaxy S3. I've started with Eclipse but it is a bit clunky and am more comfortable with VS. My question is; since I want to eventually port my app to iOS, is the Xamarin suite of apps worth the cost in the end? I'm using the Mono for Android trial at the moment and a personal license costs $399. A bit steep but it is easier to develop in C# with the (hopefully) easier migration to iOS in the future. I'm using the VS 2012 templates that are installed when I installed the development kit. The documentation is a bit lacking but there are many samples and the community seems well established. So bottom line is would you recommend Java and the Eclipse route or C# with Mono?
-
Copy protection via internetIntuit, the folks who make TurboTax tried something similar, but combined it with a fairly invasive DRM protection scheme. The "activation" portion functioned similarly to that of Windows Product Activation, however the DRM portion wrote to the boot sector of the hard drive. The result? Mass customer backlash which finally led to the company removing DRM from future versions of the product. I understand the need to protect your intellectual property, but it should implemented in a consumer-friendly way. Ya know?
-
Adding a user to an Active Directory group that contains more than 1,000 membersI am having some difficulty adding a member to a directory group object that has 1,000 or more members already in it. For example, if I have a group object with 1,300 existing members in it, and I attempt to add another member, my list of members is truncated to 1,001. Since I am using a Windows 2000 directory server, I assume it's related to the 1,000 per page issue. It works just fine if there are less than 1,000 members in the group. Here is the code I am using to add the member: *****************BEGIN CODE******************** string AdsPath = "LDAP://CN=GroupObject,DC=DomainA,DC=CorpA,DC=COM"; // bind DirectoryEntry de = new DirectoryEntry(AdsPath); // add member de.Properties["member"].Add("CN=user,DC=DomainA,DC=CorpA,DC=com"); // commit de.CommitChanges(); de.Close() ******************END CODE******************** Thanks in advance for your help. ;)
-
Correct way to abort a Suspended thread?Maybe, but according to the MSDN docs, the CLR already does that for you when you call Abort.
-
Correct way to abort a Suspended thread?Daniel Turini wrote: I noticed that the Thread.Abort() method cannot cancel an interop call, only managed code. Huh? I'm not making any Interop calls in this function at all.
-
Correct way to abort a Suspended thread?I'm using a background thread in my Windows Forms app to retrieve all user objects in our Active Directory. (15,000+ users) I am retrieving users in lots of 1,000, at which time I call the Suspend() method on my thread to pause the GUI and allow them to select a user or users. If the user presses the Cancel button while the thread is in the running state, I call the Abort() method and catch the corresponding ThreadAbortException, and the thread terminates gracefully. The problem I'm having is that if I call the Abort() method while the thread is in a suspended state, the thread never terminates. I am catching the ThreadStateException that is thrown, but is there something else I must do to the thread to properly terminate it at this point? Code follows: private void buttonMemberSelectCancel_Click(object sender, System.EventArgs e) { try { if (!bgListThread.IsAlive) // is alive? this.Close(); else { try { bgListThread.Abort(); } catch(System.Threading.ThreadAbortException) { // abort thread gracefully } catch(System.Threading.ThreadStateException) { // if suspended, abort gracefully } } } catch (NullReferenceException) { // if thread doesn't exist, just close dialog } finally { this.Close(); } }
-
How to get values stored in Scripting.Dictionary instance.Yes, that did it! Thank you Richard.
-
How to get values stored in Scripting.Dictionary instance.Hi, I am using a vender-provided COM object in a C# Windows Forms application to extract proprietary data format from an AD attribute. The data is stored in an associative array. The problem I am having is retrieving the items that the object returns as its parameters. For example, upon binding to an AD container object, the object creates an instance of type Scripting.Dictionary within COM object, and exposes this instance as a property called "Parameters." I've tried casting to a ListDictionary, HybridDictionary, you name it. Nothing seems to work except IEnumerator. The problem I'm having is how to retrieve the items for each key in the Scripting.Dictionary collection. I'm able to retrieve the names of the keys, but now I simply want to get the values for each key, called "Items". I've wrapped the Scripting.Dictionary class into a .NET assembly using the TLBIMP libary and included it in my project. Here's a snippet of my code so far: // AD path to bind to string ADsPath = "LDAP://CN=Some List,OU=Distribution Lists,DC=DomainA,DC=CorpA,DC=com"; // instantiate the vender COM object AGQueryClass ag = new AGQueryClass(); // bind to the AD path ag.Set(ADsPath); //cast ag.Parameters to Scripting.Dictionary instance Scripting.DictionaryClass sd = (Scripting.DictionaryClass) ag.Parameters; // get collection enumerator IEnumerator IEn = sd.GetEnumerator(); // array to hold keys Array ary = Array.CreateInstance(typeof(object), sd.Count); IEn.Reset(); IEn.MoveNext(); // populate the array with key names for (int i=0; i
-
Active Directory QuestionI'm attempting to retrieve an Active Directory attribute that is stored as as type OctetString. I want to convert this value to a string, but the Convert class doesn't seem to be able to do this. Can someone help?
-
Linux - the Amiga of the 00'sI agree with you - mostly. I have been using Linux since late 1996, and have seen it get progressively better and better with each release. I like it very much and have the patience and experience to fix most of the quirkiness with the window managers you describe, but I think Windows 2000 is a tremendous improvement over any other Microsoft OS - I even prefer it to Linux. I certainly don't "envy" other users in the Linux community, but I loathe the anti-Microsoft rhetoric that spews from the mouths of the 13 year-olds at Slashdot. Their anti-social "religion" speaks poorly for the rest of us. I suppose that's what drives people to choose one side or another